3 回答

TA貢獻1900條經驗 獲得超5個贊
如果您想使用該* 2習慣用法,您可以使用extend()并向其傳遞一個包含由 . 制成的兩個項目的列表[i] * 2。
例如:
def double_list(alist):
blist = []
for i in alist:
blist.extend([i]*2)
return blist
orig = ['how','are','you?']
print('double list: ',double_list(orig))
# double list: ['how', 'how', 'are', 'are', 'you?', 'you?']
注意:您獲取雙精度值的原因original list: ['howhow', 'areare', 'you?you?'] 是因為您正在打印函數的返回值,而不是原始列表。

TA貢獻1868條經驗 獲得超4個贊
您正在將字符串添加在一起。只需將它們附加兩次即可。
blist = []
def double_list(alist):
for i in alist:
blist.append(i)
blist.append(i)
return blist
print('original list: ',double_list(['how','are','you?']))
print('double list: ',blist)
我確信有更好的方法來做到這一點,但這有助于更好地理解解決方案。

TA貢獻1799條經驗 獲得超9個贊
只需使用extend()方法,它允許您將兩個列表組合在一起。
此外,您還必須更改打印語句,因為否則您將只打印出列表的“重復”版本,而不是原始版本。
因此,我們將通過一個包含2x 所需字符串的列表來擴展“blist”。
代碼應如下所示:
blist = []
def double_list(alist):
for word in alist:
blist.extend([word]*2)
return blist
original_list = ['how','are','you?']
print('original list: ', original_list)
print('double list: ', double_list(original_list))
添加回答
舉報