【发布时间】:2017-07-25 13:08:58
【问题描述】:
我有一个名为countries.txt 的文本文件,其中列出了几个国家/地区。我试图从文本文件中取出这些国家并将它们放在一个数组中,然后将它们随机化并打印随机化列表。我尝试以几种方式编辑代码,但都没有产生我想要的结果。
下面是我尝试的第一种方法。我知道我正在打印实际的数组,但我正在尝试一些东西:
results = []
def load():
with open('countries.txt') as inputfile:
for line in inputfile:
results.append(line)
random.shuffle(results)
print(str(results))
结果如下:
['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']
第二次尝试使用以下代码:
results = []
def load():
with open('countries.txt') as inputfile:
for line in inputfile:
results.append(line)
random.shuffle(results)
print(str(line))
从某种意义上说,结果是正确的,它按照我想要的方式列出了国家,但并没有将它们随机化。结果是:
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",并采用第二个示例所示的普通列表格式)?
【问题讨论】:
标签: arrays list python-3.x random