列表推导式:
找出names中含有两个相同字符的字符串:
# 找出names中含有两个相同字符的字符串
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva', 'Clara']]
l = [i for x in names for i in x if len(set(i)) + 1 == len(i)]
print(l) # ['Billy', 'Wesley', 'Steven', 'Jill', 'Sherry', 'Clara']
字典推导式:
将一个字典的key和value对调:
d = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6}
res = {d[k]:k for k in d}
print(res) # {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f'}
合并大小写对应的value值并将k统一小写:字典get方法默认值
d = {'a':10, 'b':12, 'A':7, 'Z':3}
res = {k.lower():d.get(k.lower(), 0) + d.get(k.upper(), 0) for k in d}
print(res) # {'a': 17, 'b': 12, 'z': 3}
集合推导式:
计算列表每个值的平方并去重:
l = [1, -1, 2]
res = {x * x for x in l}
print(res) # {1, 4}