我需要获取列表列表中的值。有问题的列表被称为' 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编号。
提前感谢有帮助我帮助解决这个问题的天才!
答案 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_list
中key
rd索引的条目。否则my_gtin
将具有相同的值。