想要获取值匹配的其他列表的值

Want get value of other list where value matched

我有两个列表如下。

characteristic  = ['length', 'width', 'height', 'Thread length', 'space']
value = ['length 34','width ab23','Thread length 8ah','space','height 099']

我写了一个循环

temp_str = {}



for x in characteristic:

  for z in value:  

      if x in z:

        temp_str = z.replace(x,'')

        temp_str += ','

        print(temp_str)

我得到输出:

34,
Thread  8ah,
 ab23,
 099,
 8ah,
,

但实际上我想要如下输出

34,ab23,099,8ah, 

您可以使用嵌套列表理解,检查 value 中的值是否以 characteristic:

中的特征开头
result = ','.join(v.replace(c, '') for c in characteristic for v in value if v.startswith(c))

输出:

 34, ab23, 099, 8ah,

请注意,space 出现在 value 中,没有附加任何值;因此字符串中的空字段。

尝试以下操作:

characteristic  = ['length', 'width', 'height', 'Thread length', 'space']
value = ['length 34','width ab23','Thread length 8ah','space','height 099']
temp_str = ''

for x in characteristic:
    for z in value:  
        if z.startswith(x) and z!=x:
            temp_str += z.split(' ')[-1]
            temp_str += ','
print(temp_str)

输出:

34,ab23,099,8ah,

注意:space 被忽略,因为它未包含在您要求的输出中