簡體   English   中英

在python中組合兩個字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM