CVS文件Python列表中的列表



我有一个带有以下列表的CVS文件。我正在尝试从这个列表中检查某个日期,然后读取值。

[
['"2020-10-01"', '0', '4', '0.4', '6.8', '10.3', '11.9', '4.5', '7.2', '7.6', '13.8', '0.9', '9.8']
['"2020-10-02"', '0.1', '4.4', '2.6', '7.8', '10.1', '11.8', '4.4', '7', '7.4', '13.6', '0.8', '9.7']
['"2020-10-03"', '0', '4.9', '2.3', '7.2', '10', '11.6', '4.2', '6.9', '7.2', '13.4', '0.6', '9.5']
['"2020-10-04"', '1.1', '4.8', '1.8', '7.6', '9.8', '11.4', '4.1', '6.7', '6.9', '13.3', '0.5', '9.4']
]

这就是我尝试过的

for row in List:
for srow in row[0]:
if date in srow:
print(date[1])

下面的答案假设日期周围没有双引号。

你需要从某个地方获得搜索日期,例如用户输入,然后你需要搜索行中的包含项,不要迭代row[0],这会迭代第一个元素的字符

date = input("Please give a date: ")
List = [
['2020-10-01', '0', '4', '0.4', '6.8', '10.3', '11.9', '4.5', '7.2', '7.6', '13.8', '0.9', '9.8'],
['2020-10-02', '0.1', '4.4', '2.6', '7.8', '10.1', '11.8', '4.4', '7', '7.4', '13.6', '0.8', '9.7'],
['2020-10-03', '0', '4.9', '2.3', '7.2', '10', '11.6', '4.2', '6.9', '7.2', '13.4', '0.6', '9.5'],
['2020-10-04', '1.1', '4.8', '1.8', '7.6', '9.8', '11.4', '4.1', '6.7', '6.9', '13.3', '0.5', '9.4']
]
for row in List:
if date in row:
print(row)
# DEMO
Please give a date: 2020-10-01
['2020-10-01', '0', '4', '0.4', '6.8', '10.3', '11.9', '4.5', '7.2', '7.6', '13.8', '0.9', '9.8']

只需将"yyyy-mm-dd"修改为"yyyy-mm-dd",现在就可以工作了:

mylist = [['2020-10-01', '0', '4', '0.4', '6.8', '10.3', '11.9', '4.5', '7.2', '7.6', '13.8', '0.9', '9.8'],
['2020-10-02', '0.1', '4.4', '2.6', '7.8', '10.1', '11.8', '4.4', '7', '7.4', '13.6', '0.8', '9.7'],
['2020-10-03', '0', '4.9', '2.3', '7.2', '10', '11.6', '4.2', '6.9', '7.2', '13.4', '0.6', '9.5'],
['2020-10-04', '1.1', '4.8', '1.8', '7.6', '9.8', '11.4', '4.1', '6.7', '6.9', '13.3', '0.5', '9.4']]

example_date = '2020-10-02'
for row in mylist:
if row[0] == example_date:
print('Found in: ' + str(row))
break

最新更新