当我在Python中创建数组列表并打印出第一个索引的结果时,为什么还要打印方括号?
people = [
["Fredrick", 23],
["Lorenzo", 13],
["Francesco", 13],
["Giovanna", 9]
]
print(f"{people[0]}")
输出:['Fredrick',23]
答案 0 :(得分:1)
您创建了people
,它是一个列表列表。然后,您引用f字符串f"{people[0]}"
。当您引用它时,表达式people[0]
会被求值并被发现是列表["Fredrick", 23]
。然后将其转换为字符串-请记住,这是一个f字符串。根据Python标准,Fredrick
周围的双引号将转换为单引号,其中单引号或双引号可用于表示字符串,但它们可替换为字符串中的字符串。 Python希望在需要表示时在整个字符串周围加上双引号,因此要替换引号的类型,请使用单引号。所以最后一个f字符串是
"['Fredrick', 23]"
请记住,字符串中的内容是people
中列表的表示。 Python添加了括号,因此每个人都知道这确实是一个列表。 Python可以做不同的事情,但这使列表的性质变得明确,the Zen of Python中的第二条规则是
显式优于隐式。
因此显示了方括号。如果您不希望使用括号,则有几种方法可以将其卸下。最简单的打印f字符串而不用括号的方法可能是
print(f"{people[0]}"[1:-1])
可打印
'Fredrick', 23
该代码将打印字符串,但会删除括号中的第一个和最后一个字符。如果您不了解Python's slice notation,则应该对其进行研究-这是Python在字符串处理方面的优势之一。
答案 1 :(得分:1)
您定义了一个以数组为元素的数组。这就是为什么访问人数组的第一个索引时会得到数组['Fredrick',23]的原因。这等效于访问数组的第一项
>> array = [10, 20, 30]
>> print array[0]
>> 10
在您的情况下,第一个元素是数组:
>> ['Fredrick', 23]
另一种方法可能是:
# map is another (more appropriate)
# data structure to store this data.
people = {
'Fredrick': 23,
'Lorenzo': 13,
'Francesco': 13,
'Giovanna': 9
}
for name, age in people.items():
# iterate through all map items
# and print out each person's name and age.
# Note: you need to convert the age from int to string
# in order to concatenate it.
print name + ", " + str(people[name])
答案 2 :(得分:0)
let non_nan_floats: Vec<NotNan<f32>> = unsafe { mem::transmute(nets) };
创建一个列表列表,people = [
["Fredrick", 23],
["Lorenzo", 13],
["Francesco", 13],
["Giovanna", 9]
]
给出第一个值-列表people[0]
。打印列表python(默认情况下)时,也要打印括号。