【问题标题】:How to add a column based on the values of a list of lists in python? No libraries如何根据python中列表列表的值添加列?没有图书馆
【发布时间】:2020-08-26 13:35:21
【问题描述】:

如何根据python中列表列表的值之一添加列?

我有以下列表,我需要根据货币的值添加一个新列。

如果英镑,欧元 = 金额 *0.9 如果 USD , Euro =Amount *1.2 我需要在没有库的情况下编写代码。

[['Buyer', 'Seller', 'Amount', 'Property_Type','Currency'], 
['100', '200', '4923', 'c', 'Pound'], 
['600', '429', '838672', 'a', 'USD'],
['650', '400', '8672', 'a', 'Euro']

结果

[['Buyer', 'Seller', 'Amount', 'Property_Type', 'Currency', 'Euro'], 
['100', '200', '5000', 'c', 'Livre', '6000'], 
['600', '429', '10000', 'a', 'USD', '9000'],
['650', '400', '8600', 'a', 'Euro', '8600']

非常感谢,任何有关如何导入 csv 并在没有库的情况下对其进行操作的阅读资料,将不胜感激。

【问题讨论】:

  • 您的代码示例都不显示列表列表。你也考虑过使用熊猫吗?

标签: python list arraylist nested-lists


【解决方案1】:

假设列总是以相同的顺序...

EXCH_RATES = {
    'Pound': Decimal('0.9'),
    'USD': Decimal('1.2'),
    'Euro': 1,
}
rows[0].append('Euro')
for row in rows[1:]:
  exch_rate = EXCH_RATES[row[4]]
  row.append(str(exch_rate * Decimal[row[2]]))

【讨论】:

    【解决方案2】:

    检查列表内列表中的最后一项,然后检查其货币,然后更改金额,如下所示:

    lst = [['Buyer', 'Seller', 'Amount', 'Property_Type','Currency'], ['100', '200', '4923', 'c', 'Pound'], ['600', '429', '838672', 'a', 'USD'], ['650', '400', '8672', 'a', 'Euro']]
    for i in range(3):
        if lst[i][3] == 'Pound':
            lst[i].append(str(int(lst[i][2]) * 0.9))
        elif lst[i][3] == 'USD':
            lst[i].append(str(int(lst[i][2]) * 1.2))
        else:
            lst[i].append(lst[i][2])
    

    虽然您最好将数据存储在 csv 文件中,但您必须使用 csv 库。

    告诉我这是否有帮助,如果你想使用 csv 库,请告诉我,我可以告诉你如何使用它。

    【讨论】:

      猜你喜欢
      • 2015-01-20
      • 2020-09-21
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多