有没有办法在Python中为数组中的键赋值?
PHP中的示例:
$inputArr = array(
'vertex'=>values[0],
'visited'=>values[1],
'letter' => $values[2]
)
Run Code Online (Sandbox Code Playgroud)
这是我在Python中尝试的方式:
file_name = input('Enter a file name: ')
f = open(file_name, 'r')
data = f.readlines() //Read the lines
for line in data:
values = line.split(' ') Split line following the spaces
inputArr = array(
'vertex'=>values[0], //Pass each value to a key in that array
'visited'=>values[1],
'letter' => $values[2]
)
print (inputArr)
Run Code Online (Sandbox Code Playgroud)
你想用dicts:
array = {
'vertex': values[0],
'visited': values[1],
'letter': values[2],
}
# access via array['vertex']
Run Code Online (Sandbox Code Playgroud)
但是请注意,这并没有保留的顺序.迭代字典可以产生任意顺序.OrderedDict最新版本的python中有一个类,但请记住,它需要的内存是普通版本的两倍多dict.
如果您的数组是固定的,并且只有这3个元素,那么最好使用namedtuple:
from collections import namedtuple
NamedSeq = namedtuple('NamedSeq', ('vertex', 'visited', 'letter'))
array = NamedSeq(values[0], values[1], values[2])
#or
array = NamedSeq(vertex=values[0], letter=values[2], visited=values[1])
Run Code Online (Sandbox Code Playgroud)
这将保留该命令,您可以访问vertex通过array.vertex等,或者您也可以访问使用数据array[0]的价值vertex,array[1]对visited等
请注意,然而,namedtuples是不可变的,即您无法修改它们.