11
11
print (a_dict [k ]) # Should not emit warning, v != a_dict[k]
12
12
13
13
for k , v in b_dict .items ():
14
+ print (k )
14
15
k = "another key"
15
16
print (b_dict [k ]) # This is fine, key reassigned
16
17
17
18
18
19
# Tests on comprehensions
19
- {v : 1 for k , v in a_dict .items () if a_dict [k ]} # [unnecessary-dict-index-lookup]
20
- {v : 1 for k , v in a_dict .items () if k } # This is fine, no indexing
21
- {a_dict [k ]: 1 for k , v in a_dict .items () if k } # [unnecessary-dict-index-lookup]
22
- {a_dict [k ]: 1 for k , v in a_dict .items () if a_dict [k ]} # [unnecessary-dict-index-lookup, unnecessary-dict-index-lookup]
20
+ A = {v : 1 for k , v in a_dict .items () if a_dict [k ]} # [unnecessary-dict-index-lookup]
21
+ B = {v : 1 for k , v in a_dict .items () if k } # This is fine, no indexing
22
+ C = {a_dict [k ]: 1 for k , v in a_dict .items () if k } # [unnecessary-dict-index-lookup]
23
+ # +1: [unnecessary-dict-index-lookup, unnecessary-dict-index-lookup]
24
+ D = {a_dict [k ]: 1 for k , v in a_dict .items () if a_dict [k ]}
23
25
24
- [v for k , v in a_dict .items () if a_dict [k ]] # [unnecessary-dict-index-lookup]
25
- [v for k , v in a_dict .items () if k ] # This is fine, no indexing
26
- [a_dict [k ] for k , v in a_dict .items () if k ] # [unnecessary-dict-index-lookup]
27
- [a_dict [k ] for k , v in a_dict .items () if a_dict [k ]] # [unnecessary-dict-index-lookup, unnecessary-dict-index-lookup]
26
+ E = [v for k , v in a_dict .items () if a_dict [k ]] # [unnecessary-dict-index-lookup]
27
+ F = [v for k , v in a_dict .items () if k ] # This is fine, no indexing
28
+ G = [a_dict [k ] for k , v in a_dict .items () if k ] # [unnecessary-dict-index-lookup]
29
+ # +1: [unnecessary-dict-index-lookup, unnecessary-dict-index-lookup]
30
+ H = [a_dict [k ] for k , v in a_dict .items () if a_dict [k ]]
28
31
29
32
30
33
# Tests on dict attribute of a class
@@ -35,29 +38,31 @@ class Foo:
35
38
for k , v in Foo .c_dict .items ():
36
39
print (b_dict [k ]) # Should not emit warning, accessing other dictionary
37
40
print (Foo .c_dict [k ]) # [unnecessary-dict-index-lookup]
38
- unnecessary = 0 # pylint: disable=invalid-name
41
+ unnecessary = 0 # pylint: disable=invalid-name
39
42
unnecessary += Foo .c_dict [k ] # [unnecessary-dict-index-lookup]
40
43
Foo .c_dict [k ] += v # key access necessary
41
44
42
45
# Tests on comprehensions
43
- {v : 1 for k , v in Foo .c_dict .items () if Foo .c_dict [k ]} # [unnecessary-dict-index-lookup]
44
- {v : 1 for k , v in Foo .c_dict .items () if k } # This is fine, no indexing
45
- {Foo .c_dict [k ]: 1 for k , v in Foo .c_dict .items () if k } # [unnecessary-dict-index-lookup]
46
- {Foo .c_dict [k ]: 1 for k , v in Foo .c_dict .items () if Foo .c_dict [k ]} # [unnecessary-dict-index-lookup, unnecessary-dict-index-lookup]
47
-
48
- [v for k , v in Foo .c_dict .items () if Foo .c_dict [k ]] # [unnecessary-dict-index-lookup]
49
- [v for k , v in Foo .c_dict .items () if k ] # This is fine, no indexing
50
- [Foo .c_dict [k ] for k , v in Foo .c_dict .items () if k ] # [unnecessary-dict-index-lookup]
51
- [Foo .c_dict [k ] for k , v in Foo .c_dict .items () if Foo .c_dict [k ]] # [unnecessary-dict-index-lookup, unnecessary-dict-index-lookup]
46
+ S = {v : 1 for k , v in Foo .c_dict .items () if Foo .c_dict [k ]} # [unnecessary-dict-index-lookup]
47
+ J = {v : 1 for k , v in Foo .c_dict .items () if k } # This is fine, no indexing
48
+ K = {Foo .c_dict [k ]: 1 for k , v in Foo .c_dict .items () if k } # [unnecessary-dict-index-lookup]
49
+ # +1: [unnecessary-dict-index-lookup, unnecessary-dict-index-lookup]
50
+ L = {Foo .c_dict [k ]: 1 for k , v in Foo .c_dict .items () if Foo .c_dict [k ]}
51
+
52
+ M = [v for k , v in Foo .c_dict .items () if Foo .c_dict [k ]] # [unnecessary-dict-index-lookup]
53
+ N = [v for k , v in Foo .c_dict .items () if k ] # This is fine, no indexing
54
+ T = [Foo .c_dict [k ] for k , v in Foo .c_dict .items () if k ] # [unnecessary-dict-index-lookup]
55
+ # +1: [unnecessary-dict-index-lookup, unnecessary-dict-index-lookup]
56
+ P = [Foo .c_dict [k ] for k , v in Foo .c_dict .items () if Foo .c_dict [k ]]
52
57
53
58
# Test assigning d.items() to a single variable
54
59
d = {1 : "a" , 2 : "b" }
55
60
for item in d .items ():
56
61
print (item [0 ])
57
62
print (d [item [0 ]]) # [unnecessary-dict-index-lookup]
58
63
59
- [item [0 ] for item in d .items ()]
60
- [d [item [0 ]] for item in d .items ()] # [unnecessary-dict-index-lookup]
64
+ Q = [item [0 ] for item in d .items ()]
65
+ R = [d [item [0 ]] for item in d .items ()] # [unnecessary-dict-index-lookup]
61
66
62
67
# Reassigning single var
63
68
for item in d .items ():
0 commit comments