我有一个清单a
list = ['247400015203223811', 'DPF', '247400015203223813', 'ZPF']
Run Code Online (Sandbox Code Playgroud)
我想得到一个字符串列表,比如["247400015203223811, DPF", "247400015203223813, ZPF"]
将每2个字符串组合成1个字符串
我尝试过
list2 = []
list = ['247400015203223811', 'DPF', '247400015203223813', 'ZPF']
for i in range(0, len(list), 2):
list2.append(list[i] + list[i])
Run Code Online (Sandbox Code Playgroud)
这有可能吗?
sac*_*cuL 15
你几乎拥有它,你可以使用这个列表理解:
mylist = ['247400015203223811', 'DPF', '247400015203223813', 'ZPF']
mylist2 = [mylist[i]+', '+mylist[i+1]for i in range(0,len(mylist),2)]
>>> mylist2
['247400015203223811, DPF', '247400015203223813, ZPF']
Run Code Online (Sandbox Code Playgroud)
确保不要将关键字list用作变量名,因为它掩盖了python内置类型(我改为将其更改为mylist)
我认为切片zip可以在这里很好地工作:
# assuming list of stringals is named `strings`
even_indexed = strings[::2]
odd_indexed = strings[1::2]
# create pairs to join
pairs = zip(even_indexed, odd_indexed)
# join all pairs
result = list(map(', '.join, pairs))
Run Code Online (Sandbox Code Playgroud)
无法测试,但这可以解决这个问题.
当然是可能的,你几乎得到了答案:
你只需要在第二个单词的索引中加1:
list2 = []
list1 = ['247400015203223811', 'DPF', '247400015203223813', 'ZPF']
for i in range(0, len(list1), 2):
list2.append(list1[i] + list1[i+1])
print(list2) # OUTPUT: ['247400015203223811DPF', '247400015203223813ZPF']
Run Code Online (Sandbox Code Playgroud)
但你也许想要在两个单词之间加一个点:
list2.append(list1[i] + '.' + list1[i+1]) # OUTPUT: ['247400015203223811.DPF', '247400015203223813.ZPF']
Run Code Online (Sandbox Code Playgroud)
在列表中配对项的一种常见模式是在列表上获取迭代器,然后zip在迭代器中使用自身.从那里开始,加入对", "就像打电话一样容易str.join
# Don't reuse the name list, it already has a meaning
list_ = ['247400015203223811', 'DPF', '247400015203223813', 'ZPF']
it = iter(list_)
print([", ".join(pair) for pair in zip(it, it)])
# ['247400015203223811, DPF', '247400015203223813, ZPF']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |