私はcountries.txt
と呼ばれるいくつかの国のテキストファイルを持っています。これらの国をテキストファイルから取り出し、配列に入れてランダム化し、ランダム化されたリストを印刷します。私はいくつかの方法でコードを編集しようとしましたが、どれも結果が得られません。配列のテキストファイルから文字列リストをランダム化するPython?
以下は私が試した最初の方法です。
results = []
def load():
with open('countries.txt') as inputfile:
for line in inputfile:
results.append(line)
random.shuffle(results)
print(str(results))
、次のような結果だった:私は、実際の配列を印刷していますが、私は何かをしようとしていた知っている
results = []
def load():
with open('countries.txt') as inputfile:
for line in inputfile:
results.append(line)
random.shuffle(results)
print(str(line))
:第二の試みは、以下の次のコードを使用
['Armenia\n']
['Bangladesh\n', 'Armenia\n']
['China\n', 'Armenia\n', 'Bangladesh\n']
['Denmark\n', 'Bangladesh\n', 'Armenia\n', 'China\n']
['Armenia\n', 'Bangladesh\n', 'Denmark\n', 'China\n', 'Estonia\n']
['Armenia\n', 'Estonia\n', 'Bangladesh\n', 'China\n', 'France\n', 'Denmark\n']
['France\n', 'China\n', 'Bangladesh\n', 'Armenia\n', 'Estonia\n', 'Denmark\n', 'Ghana']
結果は、国が私が望むようにリストされているという意味では正しいですが、無作為化していません。結果はでした:
Armenia
Bangladesh
China
Denmark
Estonia
France
Ghana
私が作った最後の試みは、次のコードを使用していた:
結果= []
def load():
with open('countries.txt') as inputfile:
for line in inputfile:
results.append(line)
random.shuffle(line)
print(str(line))
しかし、この関数は次のエラー生成:
File "C:\Users\redcode\AppData\Local\Programs\Python\Python36-32\lib\random.py", line 274, in shuffle
x[i], x[j] = x[j], x[i]
TypeError: 'str' object does not support item assignment
を
エラーを生成する特定の行はrandom.shuffle(line)
です。
テキストファイルからリストを取得し、そのリストをランダム化して結果を印刷するには([]
または"\n"
と2番目の例のような通常のリスト形式で)どうすればよいですか?
は完璧に動作している、ありがとう:D – RedCode