如何向数字列表添加分隔符? [重复]

问题描述 投票:0回答:4

我正在做一个练习,它告诉我打印出每个人最喜欢的数字。当涉及到多个号码时,我无法将号码排成一行,并用逗号分隔。你能提出一个解决方案吗?

我的代码

favourite_numbers = {
    "ha": [20, 10, 4],
    "quynh": [2, 5],
    "nhung": [3, 10, 12],
    "giang": [10],
}

for name, numbers in favourite_numbers.items():
    if len(numbers) == 1:
        for number in numbers:
            print(f"\n{name.title()}'s favourite number is {number}.")
    elif len(numbers) >= 2:
        print(f"\n{name.title()}'s favourite numbers are:")
        for number in numbers:
            print(f"{number}")

具有多个数字的人的输出如下所示

Ha's favourite numbers are:
20
10
4

我期待它是这样的:

Ha's favourite numbers are: 20, 10, 4
python list separator
4个回答
1
投票

Python String join() 方法看起来会很有帮助。

favourite_numbers = {
    "ha": [20, 10, 4],
    "quynh": [2, 5],
    "nhung": [3, 10, 12],
    "giang": [10],
}

for name, numbers in favourite_numbers.items():
    if len(numbers) == 1: length = 'number is'
    elif len(numbers) > 1: length = 'numbers are'
    numbers = ', '.join(map(str, numbers))
    print(f"\n{name.title()}'s favourite {length}", numbers)

输出:

Ha's favourite numbers are 20, 10, 4

Quynh's favourite numbers are 2, 5

Nhung's favourite numbers are 3, 10, 12

Giang's favourite number is 10

0
投票

当值列表中有多个数字时,您可以通过两次调用 print() 来完成此操作。在第二次调用 print() 时,只需解压缩列表:

favourite_numbers = {
    "ha": [20, 10, 4],
    "quynh": [2, 5],
    "nhung": [3, 10, 12],
    "giang": [10],
}

for k, v in favourite_numbers.items():
    s = 's are' if len(v) > 1 else ' is'
    print(f"{k.title()}'s favourite number{s} ", end='')
    print(*v, sep=', ')

可以选择使用映射/连接,如下所示:

for k, v in favourite_numbers.items():
    s = 's are' if len(v) > 1 else ' is'
    print(f"{k.title()}'s favourite number{s}", ', '.join(map(str, v)))

输出:

Ha's favourite numbers are 20, 10, 4
Quynh's favourite numbers are 2, 5
Nhung's favourite numbers are 3, 10, 12
Giang's favourite number is 10

-1
投票

应该是一个快速解决方案:

for name, numbers in favourite_numbers.items():
    if len(numbers) == 1:
        for number in numbers:
            print(f"\n{name.title()}'s favourite number is {number}.")
    elif len(numbers) >= 2:
        print(f"\n{name.title()}'s favourite numbers are:", end=" ")
        for number in numbers:
            # Solution
            print(f"{number}", end=", ")

只需将参数 end 的值添加为“,”即可完成!您可以在此处找到更多打印功能的参数。


-1
投票
favourite_numbers = { "ha": [20, 10, 4], "quynh": [2, 5], "nhung": [3, 10, 12], "giang": [10] } for name in favourite_numbers: numbers_in_line = "" i = 1 count = len(favourite_numbers[name]) for number in favourite_numbers[name]: if i == count: comma = "" numbers_in_line += str(number) + comma else: comma = ", " numbers_in_line += str(number) + comma i += 1 print(f"{name}'s favourite numbers are: {numbers_in_line}")
输出将是这样的:

ha's favourite numbers are: 20, 10, 4 quynh's favourite numbers are: 2, 5 nhung's favourite numbers are: 3, 10, 12 giang's favourite numbers are: 10
这是代码在 PyCharm 执行后的打印屏幕:

© www.soinside.com 2019 - 2024. All rights reserved.