Python 如何将元组列表转换为单独的字符串?

Python 如何将元组列表转换为单独的字符串?,python,Python,我希望存储/访问每个输出项(例如“HO2S加热器控制电路”)中的第二个值,作为其自身变量。是否需要将此输出解码为列表或元组,或两者都解码?来自: 响应对象的值字段将包含元组列表,其中每个元组包含DTC,以及该DTC的字符串描述(如果可用) 因此,如果r=connection.query(obd.commands.GET\u DTC),则r.value是一个“元组列表”。您可以使用函数(如中所述)将结构转置为zip(*r.value),从而 import obd connection = obd.

我希望存储/访问每个输出项(例如“HO2S加热器控制电路”)中的第二个值,作为其自身变量。是否需要将此输出解码为列表或元组,或两者都解码?

来自:

响应对象的值字段将包含元组列表,其中每个元组包含DTC,以及该DTC的字符串描述(如果可用)

因此,如果
r=connection.query(obd.commands.GET\u DTC)
,则
r.value
是一个“元组列表”。您可以使用函数(如中所述)将结构转置为
zip(*r.value)
,从而

import obd
connection = obd.OBD()
r = connection.query(obd.commands.GET_DTC)
print(r.value)


example output:
[
  ("P0030", "HO2S Heater Control Circuit"),
  ("P1367", "Unknown error code")
]
你只需要这个列表的第二个元素,所以

    [('P0030', 'P1367'), ('HO2S Heater Control Circuit', 'Unknown error code')]
给你一个元组

    zip(*r.value)[1]
然后你可以随心所欲地使用它。请注意,这将为您提供所有“每个输出项中的第二个值”。您可以使用以下方法对所有这些文件进行迭代(例如,打印每个文件):

如果要多次使用变量,最好将
zip(*r.value)[1]
指定给该变量。

来自:

响应对象的值字段将包含元组列表,其中每个元组包含DTC,以及该DTC的字符串描述(如果可用)

因此,如果
r=connection.query(obd.commands.GET\u DTC)
,则
r.value
是一个“元组列表”。您可以使用函数(如中所述)将结构转置为
zip(*r.value)
,从而

import obd
connection = obd.OBD()
r = connection.query(obd.commands.GET_DTC)
print(r.value)


example output:
[
  ("P0030", "HO2S Heater Control Circuit"),
  ("P1367", "Unknown error code")
]
你只需要这个列表的第二个元素,所以

    [('P0030', 'P1367'), ('HO2S Heater Control Circuit', 'Unknown error code')]
给你一个元组

    zip(*r.value)[1]
然后你可以随心所欲地使用它。请注意,这将为您提供所有“每个输出项中的第二个值”。您可以使用以下方法对所有这些文件进行迭代(例如,打印每个文件):

如果要多次使用变量,最好将
zip(*r.value)[1]
赋给该变量。

可以“解包”元组。因此,从您的示例中,
r.value[0]
是元组
(“P0030”,“HO2S加热器控制电路”)
,然后

    for description in zip(*r.value)[1]:
        print description
将元组r.value[0]解包到变量
id
desc
中,以便
P0030
存储在
id
中,
HO2S加热器控制电路
存储在
desc

。因此,从您的示例中,
r.value[0]
是元组
(“P0030”,“HO2S加热器控制电路”)
,然后

    for description in zip(*r.value)[1]:
        print description

将元组r.value[0]解压为变量
id
desc
,以便
P0030
存储在
id
中,而
HO2S加热器控制电路
存储在
desc
中。如果要使用第二个元素,可以在for循环中解压元组:

id, desc = r.value[0]
i、 e:

如果您出于某种原因需要它们,也可以使用具有上述逻辑的列表comp或
运算符。itemgetter

In [4]: l = [                                                                                           
  ("P0030", "HO2S Heater Control Circuit"),
  ("P1367", "Unknown error code")
]

In [5]: for _, var in l:
          print(var)
   ...:     
HO2S Heater Control Circuit
Unknown error code

您还可以使用
itemgetter(-1)
获取最后的元素。

如果要使用第二个元素,可以在for循环中解压元组:

id, desc = r.value[0]
i、 e:

如果您出于某种原因需要它们,也可以使用具有上述逻辑的列表comp或
运算符。itemgetter

In [4]: l = [                                                                                           
  ("P0030", "HO2S Heater Control Circuit"),
  ("P1367", "Unknown error code")
]

In [5]: for _, var in l:
          print(var)
   ...:     
HO2S Heater Control Circuit
Unknown error code

您还可以使用
itemgetter(-1)
来获取最后的元素。

您说的“作为它自己的变量”是什么意思?是否要展平
列表
?或者您正在询问如何访问嵌套项?还是只需要可变容器?请说得更具体一些,比如:
first,second=r.value[0]
?你说的“作为它自己的变量”是什么意思?是否要展平
列表
?或者您正在询问如何访问嵌套项?还是只需要可变容器?请说得更具体一些,比如:
first,second=r.value[0]
?这比我的答案简单得多。这比我的答案简单得多。