列表项包含另一个列表Python的值

问题描述 投票:-1回答:3

我正在寻找这样的东西。我需要比较列表列表中的项目0,如果列表b的项目包含它,则将项目b更改为项目。

a = [['12','0.4'],['13','0.4'],['14','0.4']]
b = ['122','133', '144']

for item in a:
    for item[0] in item:
        if item in b:
            replace b for item



output:

a = [['122','0.4'],['133','0.4'],['144','0.4']]
python list
3个回答
4
投票

试试:

a = [['12','0.4'],['13','0.4'],['14','0.4']]
b = ['122','133', '144']
for list_a in a:
    for item_b in b:
        if list_a[0] in item_b :
            list_a[0] = item_b
            break
print(a)
>>> [['122', '0.4'], ['133', '0.4'], ['144', '0.4']]

0
投票
for item in a:
  for i in range(len(b)):
    if item[0] in b[i]:
        item[0] = b[i]
        break
Output: a = [['122', '0.4'], ['133', '0.4'], ['144', '0.4']].

你应该在python中阅读“for”循环,这是非常基本的。


0
投票

使用带有后退值的next()的列表理解也可以解决问题:

a = [[next((r for r in b if x in r), x), y] for x, y in a]

打印出所需的:

[['122', '0.4'], ['133', '0.4'], ['144', '0.4']]

鉴于next()短路,这种方法完全等同于2 for循环和break,但更短和imho就像可读..

© www.soinside.com 2019 - 2024. All rights reserved.