我正在尝试解决一个项目,我必须在列表中计算年数,但我在理解
之间的区别时遇到了问题years = [n[1] for n in data]
和
for n in data:
years = n[1]
这是身体的其他部分
for m in years:
if m not in year_counts:
year_counts[m] = 0
year_counts[m] += 1
print(year_counts)
因此,如果我使用第一句话,那么代码将正常运行并显示正确的答案,但如果我使用第二个代码,它将给我随机数字,我不知道从哪里。
答案 0 :(得分:1)
years = [n[1] for n in data]
- 年份现在是一个列表,每个元素都是数据中元素的索引[1]
for n in data:
years = n[1]
years是一个单个对象,总是用n [1]更新,最后是数据中最后一个元素的索引[1]
答案 1 :(得分:0)
此代码years = [n[1] for n in data]
输出为list。
这段代码
for n in data:
years = n[1]
输出是包含最后一个值的单个变量。
答案 2 :(得分:0)
在
for n in data:
years = n[1]
每个n 1都会替换 years
。 "随机"您看到的条目可能是数据中最后一个条目的第二个字母。
你可以这样做来匹配理解:
years = list()
data = ['a1', 'a2', 'a3', 'a4']
for n in data:
years.append(n[1]) # years = ['1', '2', '3', '4']
但
years = [n[1] for n in data]
总体上会更快。
对于您的整体脚本,您可以考虑使用map。
答案 3 :(得分:0)
li = [1, 2, 3, 4, 5, 6, 7]
# For loop uses for list iteration.
# for loop iterate every item in a list.
for i in li:
print i
>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
>>> 6
>>> 7