【问题标题】:CVS file List in list Python列表 Python 中的 CVS 文件列表
【发布时间】:2020-05-01 16:15:56
【问题描述】:

我有一个包含以下列表的 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])

【问题讨论】:

  • date 是什么?
  • 每个列表的第一行代表日期。
  • 所以你的代码不起作用?您要查找的某个日期存储在哪里?请完善细节
  • 例如,如果用户搜索列表中的第一个日期 01.10.2020。
  • 你为什么不回答我的问题,一点也不回答?我在问您的代码中在哪里定义了date,为什么日期周围有额外的双引号?

标签: python list loops csv


【解决方案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']

【讨论】:

  • 没有帮助。感谢您的尝试
  • @Leke 听不懂你的留言^^
【解决方案2】:

只需将 '"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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多