Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从iterable打印可变长度的未包装项目_Python_Iterable Unpacking - Fatal编程技术网

Python 从iterable打印可变长度的未包装项目

Python 从iterable打印可变长度的未包装项目,python,iterable-unpacking,Python,Iterable Unpacking,我正试图从记录中解压学生姓名和分数并打印出来。我只看到了标记中的第一项,而不是整个标记列表 records = [ ("Name1", 1, 2, 3, 4 ,5), ("Name2", 2, 3, 8, 9, 10), ("Name3", 8, 9, 2, 3, 1) ] for name, *marks in records: print("Name: {0}, Marks: {1}".format(name, *marks))` 输出: Name

我正试图从记录中解压学生姓名和分数并打印出来。我只看到了标记中的第一项,而不是整个标记列表

records = [
    ("Name1", 1, 2, 3, 4 ,5),
    ("Name2", 2, 3, 8, 9, 10),
    ("Name3", 8, 9, 2, 3, 1)
    ]
for name, *marks in records:
    print("Name: {0}, Marks: {1}".format(name, *marks))`

输出:

Name: Name1, Marks: 1
Name: Name2, Marks: 2
Name: Name3, Marks: 8`
Name1 1 2 3 4 5
Name2 2 3 8 9 10
Name3 8 9 2 3 1
为什么不打印标记的其他值? 如果我尝试跟随,那么整个标记列表都会打印出来

for name, *marks in records:
    print(name, *marks)`
输出:

Name: Name1, Marks: 1
Name: Name2, Marks: 2
Name: Name3, Marks: 8`
Name1 1 2 3 4 5
Name2 2 3 8 9 10
Name3 8 9 2 3 1

之所以只看到第一项,是因为没有指定
{2}
{3}

但是,您可以使用
str.join
将其余元素连接在一起,例如:

for name, *marks in records:
    print("Name: {0}, Marks: {1}".format(name, ' '.join(map(str, marks))))

因为在格式中,您只要求显示
{0}
{1}
。。。如果
{1}
应该是所有的
标记
,不要使用
*
将其作为多个单独的参数传递。您不能将多个项目放入一个fomat说明符
{}
中,感谢@jornsharpe指出这一点,马上!谢谢