簡體   English   中英

如何將隨機字符中的字符串與列表連接起來?

[英]How to concatenate strings from random character with list?

我有這個腳本,它從 URL 中提取隨機單詞,並與存儲在列表中的其他特殊字符連接:

import requests
import random
from random import randint
import string

url = 'https://svnweb.freebsd.org/csrg/share/dict/words?view=co&content-type=text/plain'
r = requests.get(url)

text = r.text
words = text.split()
random_num = randint(0, len(words))
random_num2 = [randint(0,10)]

special_list = ['#','!','@','-', '@']
union = "".join(str(x) for x in special_list)
special_char = random.choices(union, k=2)
special_char2 = random.choices(union)

final_string = (str(special_char).strip('[]') + words[random_num] + '__' + 
                str(random_num2).strip('[]') + str(special_char2).strip('[]'))

output 是這樣的: '-', '@'auxiliary__2'-'

問題是即使我使用.join我也無法擺脫''並將所有內容連接在一起。

我也嘗試過:

   random_char = ''.join(string.punctuation for i in range(0,1))

而是使用特殊字符列表,但這也不起作用。

不確定您想要最終的 output 到底是什么,但請嘗試:

random_num2 = [randint(0,10)][0]  

然后:

final_string = f"{''.join(map(str, special_char))}{words[random_num]}__{random_num2}{''.join(map(str, special_char2))}"

或者您可以通過索引獲取特殊字符:

final_string = f"{''.join(map(str, special_char))}{words[random_num]}__{random_num2}{special_char2[0]}"

random.choices給你一個列表。 您可以像這樣訪問列表中的內容: special_char[0]而不是將列表轉換為字符串並弄亂字符串。 這樣,您將不會獲得在列表的字符串表示中獲得的撇號。 str(special_char) ==> ['-', '@'] (例如)。 如果你這樣做", ".join(special_char) ,你只會得到-, @ 如果您不想要逗號,只需"".join(special_char)給出-@

此外, random_num2 = [randint(0,10)]創建一個只有一個數字的列表。 如果您只想訪問列表中的數字,則需要random_num2[0] 或者您可以將它們全部轉換為字符串並使用",".join()就像我們對special_char所做的那樣

random_num2_str = [str(num) for num in random_num2]
special_char = random.choices(union, k=2) 
special_char2 = random.choices(union)

final_string = ", ".join(special_char) + words[random_num] + '__' + ", ".join(random_num2_str) + special_char2[0]

除非你真的需要random_num2作為列表,否則你應該做random_num2 = randint(0,10) 然后,你可以做

final_string = ", ".join(special_char) + words[random_num] + '__' + str(random_num2) + special_char2[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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