Python 如何在列表中查找特定元素?
因此,我从csv文件中附加了一个巨大的数据列表(在本例中为3行->一行表示年份、月份,以及与之对应的值) 文件示例:Python 如何在列表中查找特定元素?,python,list,Python,List,因此,我从csv文件中附加了一个巨大的数据列表(在本例中为3行->一行表示年份、月份,以及与之对应的值) 文件示例: 2001,01,65 2001,02,56 ..goes until December 2001 2002,01,45 2002,02,46 ..goes until December 2002 ( Almost 50 years of data just like this ) 我将这些值附加到一个列表中,并尝试为特定年份的每个月创建一个列表。比如说Jan,我怎样才能将Jan
2001,01,65
2001,02,56
..goes until December 2001
2002,01,45
2002,02,46
..goes until December 2002
( Almost 50 years of data just like this )
我将这些值附加到一个列表中,并尝试为特定年份的每个月创建一个列表。比如说Jan,我怎样才能将Jan的所有值附加到一个特定年份,比如说2000年。
希望这有意义
(请不要写很长的代码,也不要花很长的时间在上面工作。只有用一种文字的方式说,先做这个,然后再做那个,才会有帮助。)
我只是不知道如何在数据集合中查找特定元素。您可以使用循环和if条件将其添加到单独的列表中:
for rows in myOriginalList:
if row[0] == year and row[1] == month:
newFilteredList.append(row)
如果您在一行中读取了年、月和值,并将它们存储在
年、月和值中:
filtered_list = []
query_year = 2000
query_month = 1
for year, month, value in zip(years, months, values):
if int(year) == query_year and int(month) == query_month:
filtered_list.append(int(value))
您可以使用带有if
子句的
csv_file = [
"2001,01,65",
"2001,01,23",
"2001,02,56",
"2002,01,45",
"2002,02,46"
] # Just an example. In reality, you'll want to use open() on your actual file.
# prepare a CSV reader:
import csv
reader = csv.DictReader(csv_file, ['year', 'month', 'age'])
# read and filter the data:
january_2001_data = [row for row in reader
if row['year'] == '2001' and row['month'] == '01']
# january_2001_data == [{'age': '65', 'month': '01', 'year': '2001'},
# {'age': '23', 'month': '01', 'year': '2001'}]
如果您的CSV文件非常非常非常庞大,您可能需要查看类似的内容。“2001,01,65”-这是什么?2001-2001-01年-65个月-ageOk,因此您希望对2000年执行此操作,这不在示例文件中,并为每个月创建一个列表,尽管在示例中每个月只有一个条目。到目前为止,一切都很清楚。请告诉我们更多。我只是举一个例子,我的主要观点是在一个巨大的数据集合中找到一个特定的元素。你是说你的数据有3列,而不是3行吗?