如何获得类似“ 1.number = 85 2.number = 97”的输出

时间:2019-06-06 13:36:33

标签: python python-3.x

我创建了一个列表并选择了80个随机元素。我的代码:

import random
a=list(range(1,100))
b=random.sample(a,80)
print(b)

我得到了这个输出

[85, 97, 32, 95, 35, 70, 57, 19, 71, 81, 39, 50, 93, 16, 13, 94, 36, 99, 38, 90, 54, 6, 29, 72, 63, 5, 64, 45, 24, 47, 33, 52, 44, 65, 23, 82, 21, 89, 74, 12, 51, 18, 78, 61, 86, 88, 62, 3, 96, 30, 69, 75, 84, 58, 9, 43, 31, 7, 28, 1, 91, 55, 37, 98, 73, 27, 92, 25, 68, 87, 41, 49, 2, 66, 77, 46, 53, 20, 4, 26]

如何将该输出转换为

1.number=85 2.number=97...80.number=26

4 个答案:

答案 0 :(得分:1)

有一些选项,但是对您来说最清晰的选择是直接print without the newline character.join所需的子字符串

使用enumerate(my_iterable, 1)将允许您从中“拉出”值,这些值是第一个可迭代项(示例中的b)中下一个值的元组,以及该值的索引(开始从1作为enumerate的第二个参数)

对于[85, 97, 32, ...,您将拔出(85, 1)(97, 2)(32, 3) ...,可用于构建新字符串!

打印版本

# your code
...
for index, value in enumerate(b, 1):  # begin enumeration at 1
    print("{}.number={} ".format(index, value), end="")
print("")  # end with a new line

加入版本
创建一个新的生成器表达式

" ".join("{}.number={}".format(i,v) for i, v in enumerate(b, 1))

答案 1 :(得分:0)

如果您只想修改打印输出而不修改b的数据结构,并且如果希望每个项目都单独存在,请用以下几行替换print语句:

for item_number, item_value in enumerate(b, 1):
    print(f'{item_number}.number={item_value}')

使用Python 3.6中引入的f字符串。让我知道,如果您需要旧版本Python的代码,还是要将项目打印在一行上。

答案 2 :(得分:0)

my_list=[85, 97, 32, 95, 35, 70, 57, 19, 71, 81, 39, 50, 93, 16, 13, 94, 36, 99, 38, 90, 54, 6, 29, 72, 63, 5, 64, 45, 24, 47, 33, 52, 44, 65, 23, 82, 21, 89, 74, 12, 51, 18, 78, 61, 86, 88, 62, 3, 96, 30, 69, 75, 84, 58, 9, 43, 31, 7, 28, 1, 91, 55, 37, 98, 73, 27, 92, 25, 68, 87, 41, 49, 2, 66, 77, 46, 53, 20, 4, 26]

out = ""
for i in range(len(my_list)):
    out += "{0}.number={1} ".format(i+1,my_list[i])
out = out[:-1] # to remove last space
print(out)

打印

1.number=85 2.number=97 3.number=32 4.number=95 5.number=35 6.number=70 7.number=57 8.number=19 9.number=71 10.number=81 11.number=39 12.number=50 13.number=93 14.number=16 15.number=13 16.number=94 17.number=36 18.number=99 19.number=38 20.number=90 21.number=54 22.number=6 23.number=29 24.number=72 25.number=63 26.number=5 27.number=64 28.number=45 29.number=24 30.number=47 31.number=33 32.number=52 33.number=44 34.number=65 35.number=23 36.number=82 37.number=21 38.number=89 39.number=74 40.number=12 41.number=51 42.number=18 43.number=78 44.number=61 45.number=86 46.number=88 47.number=62 48.number=3 49.number=96 50.number=30 51.number=69 52.number=75 53.number=84 54.number=58 55.number=9 56.number=43 57.number=31 58.number=7 59.number=28 60.number=1 61.number=91 62.number=55 63.number=37 64.number=98 65.number=73 66.number=27 67.number=92 68.number=25 69.number=68 70.number=87 71.number=41 72.number=49 73.number=2 74.number=66 75.number=77 76.number=46 77.number=53 78.number=20 79.number=4 80.number=26

答案 3 :(得分:0)

您可以使用for循环遍历列表

import random
a=list(range(1,100))
b=random.sample(a,80)
count = 1
for num in b:
    print(str(count) + '.number=' + str(num))
    count+=1

Online compiler version