[英]combine two strings in python
我有一個這樣的list1
,
list1 = [('my', '1.2.3', 2),('name', '9.8.7', 3)]
我想得到一個這樣的新list2
(將第一個元素與第二個元素的第二個條目連接起來);
list2 = [('my2', 2),('name8', 3)]
作為第一步,我正在檢查加入元組中的前兩個元素,如下所示,
for i,j,k in list1:
#print(i,j,k)
x = j.split('.')[1]
y = str(i).join(x)
print(y)
但我明白了
2
8
我期待這個;
my2
name8
我做錯了什么? 有什么好的方法可以做到這一點嗎? 一個簡單的方法..
str(i).join(x)
意味着您將x
視為字符串的可迭代對象(字符串是字符串的可迭代對象),並且您將通過在x
的元素之間添加i
來構造一個字符串。
您可能想要print('{}{}'.format(i+x))
但是:
for i,j,k in list1:
x = j.split('.')[1]
print('{}{}'.format(i+x))
嘗試
y = str(i) + str(x)
它應該有效。
嘗試這個:
for x in list1:
print(x[0] + x[1][2])
或者
for x in list1:
print(x[0] + x[1].split('.')[1])
輸出
# my2
# name8
您應該能夠通過 f 字符串和列表理解來實現這一點,盡管它會非常嚴格。
list_1 = [('my', '1.2.3', 2),('name', '9.8.7', 3)]
# for item in list_1
# create tuple of (item[0], item[1].split('.')[1], item[2])
# append to a new list
list_2 = [(f"{item[0]}{item[1].split('.')[1]}", f"{item[2]}") for item in list_1]
print(list_2)
列表推導(和字典推導)是我最喜歡的關於 python3 的一些東西
https://www.pythonforbeginners.com/basics/list-comprehensions-in-python
https://www.digitalocean.com/community/tutorials/understanding-list-comprehensions-in-python-3
配合作者的主題,
list1 = [('my', '1.2.3', 2),('name', '9.8.7', 3)]
for i,j,k in list1:
extracted = j.split(".")
y = i+extracted[1] # specified the index here instead
print(y)
my2
name8
[Program finished]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.