其他
5个小问题带你理解列表推导式
问题1 用列表表示集合X
直接敲出来
X = [1,2,3,4,5,6,7,8,9,10]
X
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
也可以
X = list(range(1, 11))
X
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
问题2 表示集合B
B = []
for x in X:
B.append(x*x)
B
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
列表推导式
列表推导式代码简洁,可读性强。
[x*x for x in X]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
如何理解列表推导式
实现步骤
先复制X
#复制X本身
[x for x in X]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#对X中的每一个元素进行操作
[x*x for x in X]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
理解,类比上面的集合公式
x*x 相当于 for 相当于 | in 相当于
带条件的列表推导式
C = [x*x for x in range(1, 11) if x%2==1]
C
[1, 9, 25, 49, 81]
#断行
C = [a*a
for a in range(1, 11)
if a%2==1]
C
[1, 9, 25, 49, 81]
问题3 全部小写
words = ['Life', 'is', 'short', 'so', 'we', 'use', 'Python', 'python', 'is', 'easy', 'to', 'learn', 'and', 'easy', 'to', 'use']
words
['Life',
'is',
'short',
'so',
'we',
'use',
'Python',
'python',
'is',
'easy',
'to',
'learn',
'and',
'easy',
'to',
'use']
lower_words = [w.lower() for w in words]
lower_words
['life',
'is',
'short',
'so',
'we',
'use',
'python',
'python',
'is',
'easy',
'to',
'learn',
'and',
'easy',
'to',
'use']
问题4 计算lower_words列表数据的单词词频
wordset = set(lower_words)
wordset
{'and',
'easy',
'is',
'learn',
'life',
'python',
'short',
'so',
'to',
'use',
'we'}
[(w, lower_words.count(w))
for w in wordset]
[('we', 1),
('learn', 1),
('to', 2),
('so', 1),
('python', 2),
('is', 2),
('and', 1),
('use', 2),
('easy', 2),
('short', 1),
('life', 1)]
问题5
d = {'x': 'A',
'y': 'B',
'z': 'C' }
如何将d中的 键值对 拼接,输出为
['xA', 'yB', 'zC]
d = {'x': 'A',
'y': 'B',
'z': 'C' }
d.items()
dict_items([('x', 'A'), ('y', 'B'), ('z', 'C')])
[item for item in d.items()]
[('x', 'A'), ('y', 'B'), ('z', 'C')]
[item[0]+item[1] for item in d.items()]
['xA', 'yB', 'zC']
Label Studio多媒体数据标注工具[5星推荐]
万水千山总是情,给我点好看可好❤