gpt4 book ai didi

python - 如果 if 语句为真,则扩展和替换

转载 作者:太空宇宙 更新时间:2023-11-04 05:03:08 25 4
gpt4 key购买 nike

我有一个元组列表,我只想做一个简单的嵌套循环,它有一个if语句,如果它是True 它应该替换列表中的现有元组。我已经让它同时写入新元组和旧元组,我无法摆脱旧元组。

 list_byte = [(1, 1, 0, '0x1636'), (1, 1, 1, '0x19'), (1, 1, 2, '0x02'), (1, 1, 3, '0x2F'), (1, 2, 0, '0x1637')]
result = (2, '0x02', 'LEV'), (2, '0x19', 'RD'), (2, '0x1636', 'IMG'),(2, '0x1637', 'IEM')

t = []
for x in list_byte:
print(x)
for y in result:
#print(y)
if y[:2] == x[2:]:
#print(y[:2],'-')
t.extend([x+y[1:]])
t.append(x)

现在如何打印:

(1, 1, 0, '0x1636', '0x1636', 'IGM')
(1, 1, 0, '0x1636')
(1, 1, 1, '0x19', '0x19', 'RD')
(1, 1, 1, '0x19')
(1, 1, 2, '0x02', '0x02', 'LEV')
(1, 1, 2, '0x02')
(1, 1, 3, '0x2F')
(1, 2, 0, '0x1637', '0x1637', 'IEM')
(1, 2, 0, '0x1637')

我尝试使用 else:在 if 之后,但随后循环变得疯狂并以奇怪的序列打印每个值......这就是我得到的壁橱。

我希望它现在如何打印:

(1, 1, 0, '0x1636', '0x1636', 'IGM')
(1, 1, 1, '0x19', '0x19', 'RD')
(1, 1, 2, '0x02', '0x02', 'LEV')
(1, 1, 3, '0x2F')
(1, 2, 0, '0x1637', '0x1637', 'IEM')

最佳答案

经过一些实验后设法让这段代码运行起来。用 Python 3.6 编写。 (如果您使用的是 Python 2.x,只需将 print(i) 替换为 print i

修改后的代码

list_byte = [(1, 1, 0, '0x1636'), (1, 1, 1, '0x19'), (1, 1, 2, '0x02'), (1, 1, 3, '0x2F'), (1, 2, 0, '0x1637')]
result = (2, '0x02', 'LEV'), (2, '0x19', 'RD'), (2, '0x1636', 'IMG'),(2, '0x1637', 'IEM')

t = []
for x in list_byte:
line = x
for y in result:
if y[1] == x[3]:
line = x + y[1:]
t.append(line)

for i in t: print(i)

控制台输出:

(1, 1, 0, '0x1636', '0x1636', 'IMG')
(1, 1, 1, '0x19', '0x19', 'RD')
(1, 1, 2, '0x02', '0x02', 'LEV')
(1, 1, 3, '0x2F')
(1, 2, 0, '0x1637', '0x1637', 'IEM')

关于python - 如果 if 语句为真,则扩展和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45216643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com