如何获取列表列表中的值/用字典值替换它?

时间:2016-09-21 16:00:54

标签: python list dictionary

我需要获取列表列表中的值。有问题的列表被称为' newdetails'。它的内容在

之下
[['12345670', 'Iphone 9.0', '500', '5', '3', '5'], ['12121212', 'Samsung Laptop', '900', '5', '3', '5']]

我发现print(newdetails [0])会打印整个第一个列表。然而,我需要的是获得第一个列表的索引[0],即12345670.我还需要将索引03(两个列表)替换为字典中的VALUE,这对应于第一个GTIN编号。

我到目前为止的代码是:

for gtin,currentstock in dictionary.items():
        if newdetails[0]==gtin:
            newdetails[3]=currentstock
    print("checking to see what newdetails[0] and [3] and [9] is")
    print(newdetails[0])
    print("or is it a matrix or a 2d array")
    print(newdetails[0,3])
    print("now will this work...print replacement list")
    print(newdetails)

有人可以帮忙吗?

更新:

感谢您的建议。 我试过这个:(但它出现了一个错误)

for sub_list in newdetails:
        sub_list[3] = dictionary(sub_list[3], sub_list[3])
    print("sublist")
    print(sub_list)

错误:         sub_list [3] =字典(sub_list [3],sub_list [3])         TypeError:' dict'对象不可调用

为了澄清,我所拥有的名单被称为' newdetails' - 它里面有两个列表(从文件中读入)。 字典的名称只是字典(现在),它有一个GTIN键和一个' currentstock'值。我希望字典中的GTIN键与BOTH列表中的相同GTIN值相对应,以更新索引3(当前显示为5)。价值' currentstock'在字典中,对应于GTIN编号。

提前感谢有帮助我帮助解决这个问题的天才!

3 个答案:

答案 0 :(得分:0)

如果您有列表清单

data = [['12345670', 'Iphone 9.0', '500', '5', '3', '5'], 
        ['12121212', 'Samsung Laptop', '900', '5', '3', '5']]

然后,您发现data[0]将返回列表中的第一个列表。然后,如果您想再次使用第一个项目,那么data[0][0]就是您所需要的。

要替换两者的第三个索引,可以这样做:

for row in data:
    row[3] = 'foo'

答案 1 :(得分:0)

对于多维数组,请使用numpy库。

在python中,只需使用嵌套列表索引:

>>> x = [['12345670', 'Iphone 9.0', '500', '5', '3', '5'], ['12121212', 'Samsung Laptop', '900', '5', '3', '5']]
>>> x[0]
['12345670', 'Iphone 9.0', '500', '5', '3', '5']
>>> x[0][0]
'12345670'
>>> x[0][3] = '600'
>>> x[0][3]
'600'

答案 2 :(得分:0)

假设您有一个Page的列表映射到您在问题中提到的子列表中的相应元素。以下是实现该目标的示例代码:

key

要详细了解此代码的工作原理,请查看zip()Dict Comprehension in Python

如果您希望更新列的my_list = [['12345670', 'Iphone 9.0', '500', '5', '3', '5'], ['12121212', 'Samsung Laptop', '900', '5', '3', '5']] my_key = ['item1', 'item2', 'item3', 'item4', 'item5', 'item6'] dict_list = [{k: v for k, v in zip(my_key, sub_list)} for sub_list in my_list] # Value of "dict_list": [{ 'item2': 'Iphone 9.0', 'item3': '500', 'item6': '5', 'item4': '5', 'item5': '3', 'item1': '12345670' }, { 'item2': 'Samsung Laptop', 'item3': '900', 'item6': '5', 'item4': '5', 'item5': '3', 'item1': '12121212' }] ,请说明列表中value索引的“item6”,您可以这样做:

0

更新:根据来自OP的评论

dict_list[0]['item6'] = 'new value'

以上代码将根据# my_gtin <-- GTIN dict for sub_list in my_list: sub_list[3] = my_gtin.get(sub_list[3], sub_list[3]) dict中是否存在3来更新sub_listkey rd索引的条目。否则my_gtin将具有相同的值。