So I implemented these functions as operators in a downloaded source of CPython... the differences are insane! (Sorry if this produces nested quotes)
import timeit # d + 1 vs list(d.values())[0]: 2133x speedup timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d + 1"]) 2000000 loops, best of 5: 165 nsec per loop timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "list(d.values())[0]"]) 1000 loops, best of 5: 352 usec per loop # d - 1 vs list(d.values())[-1]: 2017x speedup timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d - 1"]) 2000000 loops, best of 5: 168 nsec per loop timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "list(d.values())[-1]"]) 1000 loops, best of 5: 354 usec per loop # d * 1 vs list(d.keys())[0]: 3663x speedup timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d * 1"]) 2000000 loops, best of 5: 166 nsec per loop timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "list(d.keys())[0]"]) 1000 loops, best of 5: 608 usec per loop # d / 1 vs list(d.keys())[-1]: 2163x speedup timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d / 1"]) 2000000 loops, best of 5: 166 nsec per loop timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "list(d.keys())[-1]"]) 1000 loops, best of 5: 359 usec per loop # d >> 1 vs list(d.items())[0]: 15302x speedup timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d >> 1"]) 1000000 loops, best of 5: 281 nsec per loop timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "list(d.items())[0]"]) 50 loops, best of 5: 4.3 msec per loop # d << 1 vs list(d.items())[-1]: 15357x speedup timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d << 1"]) 1000000 loops, best of 5: 280 nsec per loop timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "list(d.items())[-1]"]) 50 loops, best of 5: 4.3 msec per loop