【问题标题】:How to dynamically create dictionaries of lists in python using a variables string data如何使用变量字符串数据在python中动态创建列表字典
【发布时间】:2019-02-01 22:36:40
【问题描述】:

我正在循环浏览一个 CSV 文件,并希望将基于给定列的所有常见行分组到一个字典中,该字典填充了其余行的值。

示例:

Date, Name, Gender, Address 

01/02/2019, John Doe, Male, 1 example street

21/12/2018, Mary Robinson, Female, 2 Lane St.

05/06/2017, John Doe, Male, 1 example street

dates = []
names = []
genders = []
addresses = []

for row in readFile: 
    date = row[0]
    name = row[1]
    gender = row[2]
    address = row[3]

    names.append(name)
    dates.append(dates)
    genders.append(gender)
    addresses.append(address)




    if name not in names:
       #Create Dictionary with using the value of name. (exec?)
       #Then populate dictionary with rest of row.

所以我最终应该得到两本词典。一个叫 John Doe,一个叫 玛丽·罗宾逊。

例如:

MaryRobinson = {
  "date": "21/12/2018",
  "name": "Mary Robinson",
  "gender": "Female",
   "Address": "2 Lane St."
}

也许我最好使用一个列表,因为我想保留存储多个地址的选项。

我不明白如何从变量值动态创建列表。 我读过这是不好的做法。

注意:大学作业。

【问题讨论】:

    标签: python list loops dictionary


    【解决方案1】:

    如果你愿意,你可以用exec 来做,但我认为这在你的情况下不是很有用(那么你每次想要访问它们时都必须再次评估名称字符串)。我建议您获取一本“主”字典,其中将名称作为键,将字典作为值。这将类似于(实际上还没有运行它):

    data = {}
    names = []
    
    for row in readFile:
    
        date = row[0]
        name = row[1]
        gender = row[2]
        address = row[3]
    
        names.append(name)
    
       if name not in names:
           data[name] = {"date":date, "gender":gender, "address":address}
    

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 1970-01-01
      • 2017-02-16
      • 2020-04-02
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2020-07-17
      相关资源
      最近更新 更多