python - 为什么我的列表在我尝试 append 它们时没有加入 Python

标签 python for-loop append

import csv
filename='songdata.csv'
reader=csv.reader(open(filename,'r'))
header=next(reader)

data=[]
for row in reader:
    # row=[Song, Artist, Year, Tempo, Hotness, Duration, Key, Loudness, Mode]
    Song=row[0]
    Artist=row[1]
    Year=int(row[2])
    Tempo=float(row[3])
    Hotness=float(row[4])
    Duration=float(row[5])
    Key=int(row[6])
    Loudness=float(row[7])
    Mode=int(row[8])
    data.append([Song, Artist, Year, Tempo, Hotness, Duration, Key, Loudness, Mode])

for tempo in data:
    p=[]
    p.append(tempo[3])
    print p

我的 CSV 文件包含歌曲、艺术家、年份、速度、热度、持续时间、调性、响度、模式等列。我做了一个空列表,我试图将所有代表 Tempo 的浮点值 append 到这个列表中,但我一直只得到一堆代表每个 float 的单独列表值。似乎实际上没有任何内容 append 到 p。我什至尝试用我前一段时间制作的函数将结果展平,但它没有任何效果。有什么建议吗?

最佳答案

for tempo in data:
    p=[]
    p.append(tempo[3])

没有意义,因为 p 在循环中每次都被重置。所以将 p 的 init 移动到循环之前。

更好的是:使用列表理解来避免此类错误:

p = [tempo[3] for tempo in data]

关于python - 为什么我的列表在我尝试 append 它们时没有加入 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44706321/

相关文章:

python - 将 Pandas Dataframe 转换为数组并评估多元线性回归模型

scala - 赋值循环的 for 理解顺序错误

c++ - 在 for 循环中删除 vector 中的对象时,如何防止发生段错误?

list - 将值 append 到导出的 .dat 的最快方法

javascript - 追加到 jquery 中的无序列表 (ul)

javascript - 在 javascript 中 append 变量值

python - 美丽汤中的名称错误

python - 支持向量回归在线学习

python - Scapy 中的错误行为

java - 打印数组元素而不重复元素