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