如何通过将元素1连接到元素2来将lst1转换为lst2,依此类推。
lst1=[' ff 55 00 90 00 92 00 ad 00 c6 00 b7 00 8d 00 98 00 87 00 8a 00 98 00 8f 00 ca 01 78 03 54 05 bf']
到
lst2=[ff55, 0090, 0092, 00ad, 00c6, 00b7, 008d, 0098, 0087, 008a, 0098, 008f, 00ca, 0178, 0354,05bf]
尝试但未被解释
for i in lst:
lstNew = []
tempList = i.split()
lenList = len(tempList)
#print tempList
index = 0
while (index < lenList):
print tempList[index] + tempList[index+1]
index = index + 2
答案 0 :(得分:11)
这没关系:
>>> lst = ['ff', '55', '00', '90', '00', '92', '00', 'ad',
'00', 'c6', '00', 'b7', '00', '8d', '00', '98',
'00', '87', '00', '8a', '00', '98', '00', '8f',
'00', 'ca', '01', '78', '03', '54', '05', 'bf']
>>> [ ''.join(x) for x in zip(lst[0::2], lst[1::2]) ]
['ff55', '0090', '0092', '00ad', '00c6', '00b7', '008d',
'0098', '0087', '008a', '0098', '008f', '00ca', '0178',
'0354', '05bf']
>>>
或者
>>> [ x+y for x,y in zip(lst[0::2], lst[1::2]) ]
['ff55', '0090', '0092', '00ad', '00c6', '00b7',
'008d', '0098', '0087', '008a', '0098', '008f',
'00ca', '0178', '0354', '05bf']
>>>
答案 1 :(得分:5)
假设你有一个由空格分隔的2个字母的字符串,你可以这样做:
>>> from funcy import ichunks
>>> s = "ff 55 00 90 00 92 00 ad 00 c6 00 b7 00 8d 00 98 00 87 00 8a 00 98 00 8f 00 ca 01 78 03 54 05 bf"
>>> ["".join(chunk) for chunk in ichunks(2, s.split())]
['ff55', '0090', '0092', '00ad', '00c6', '00b7', '008d', '0098', '0087', '008a', '0098', '008f', '00ca', '0178', '0354', '05bf']
>>>
这会使用我最喜欢的库funcy
<强>更新强>
正如评论中所建议的那样;这是一个稍好的版本:
>>> from funcy import ichunks
>>> s = "ff 55 00 90 00 92 00 ad 00 c6 00 b7 00 8d 00 98 00 87 00 8a 00 98 00 8f 00 ca 01 78 03 54 05 bf"
>>> [c[:2] + c[3:5] for c in ichunks(6, s)]
['ff55', '0090', '0092', '00ad', '00c6', '00b7', '008d', '0098', '0087', '008a', '0098', '008f', '00ca', '0178', '0354', '05bf']
>>>
答案 2 :(得分:1)
给出格式
中的列表lst1=[' ff 55 00 90 00 92 00 ad 00 c6 00 b7 00 8d 00 98 00 87 00 8a 00 98 00 8f 00 ca 01 78 03 54 05 bf']
让我们替换所有空格并将其转换为字符串
list1=''.join([i.replace(" ","") for i in lst1])
现在我们可以增加每个4个字符以获得结果
list1= [list1[i:i+4]for i in range(0,len(list1),4)]
print list
#output=['ff55', '0090', '0092', '00ad', '00c6', '00b7', '008d', '0098', '0087', '008a', '0098', '008f', '00ca', '0178', '0354', '05bf']
答案 3 :(得分:0)
您需要正确定义列表。您的列表有一个项目,一个字符串。这是一个长度为2的字符串列表:(我认为这就是你想要的)
lst1 = ['ff', '55', '00', '90', '00', '92', '00', 'ad', '00', 'c6', '00', 'b7', '00', '8d', '00', '98', '00', '87', '00', '8a', '00', '98', '00', '8f', '00', 'ca', '01', '78', '03', '54', '05', 'bf']
然后您可以执行此操作来创建lst2
:
lst2 = []
for i in range(0, len(lst1), 2):
lst2.append(lst1[i] + lst1[i+1)
这是迭代lst1
并将每两个元素放在一起,然后将其附加到lst2
。