[英]“”.join() in python 3.7 not working inside def
我正在嘗試使用功能生成唯一的密碼。 除了"".join
之外,其他一切都正常。 幫我看看代碼中的問題是什么? 使用Python 3.7。
我的代碼:
import random
import string
def password():
a = []
letters = string.ascii_letters
symbols = string.punctuation
for element in range(6):
a.append(random.randint(0, 10))
a.append(random.choice(letters))
a.append(random.choice(symbols))
random.shuffle(a)
print(''.join(str(a)))
password()
當您通過str(a)
調用join
,您首先將列表轉換為字符串,然后通過字符串列表中的每個字符進行連接。
你想要做什么,而不是在轉換每個元素 a
為字符串。 您應該使用生成器表達式 ,如下所示:
''.join(str(x) for x in a)
另外,您可以使用內置函數map(function, iterable)
,在通常情況下,當您要返回一個新的iterable,其中包含應用於iterable
每個元素的function
結果時,該函數很有用。 因此,您將使用:
''.join(map(str, a))
基本上,您會發現它更具可讀性,這是一個品味問題。
您使用一個空字符串作為連接分隔符,它什么也不做
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.