如何将列表中的项目从整数转换为“。”和''?

时间:2017-11-13 15:12:47

标签: python

我有这个代码适用于列表中的整数

def draw_beautiful(n):
    ps = list(gen(n))
    max = len(' '.join(map(str,ps[-1])))
    for p in ps:
        print(' '.join(map(str,p)).center(max)+'\n')

生成的列表就像帕斯卡三角形一样,但每个奇数都是1,每个偶数都是0。

def gen(n,r=[]):
    for x in range(n):
        l = len(r)
        r = [1 if i == 0 or i == l else (r[i=1]+r[i])%2 for i in range(l+1)]
        yield r

按原样,它会打印一个由1和0组成的漂亮三角形,但我需要将它们作为点,将零作为空格。

2 个答案:

答案 0 :(得分:1)

draw_beautiful中,尝试替换

ps = list(gen(n))

通过

ps = [[' .'[x] for x in row] for row in gen(n)]

这会将0变为' ',将1变为'.'

答案 1 :(得分:0)

这样可以更改列表中的值

p = [1, 1, 1, 1, 0, 0, 0, 0]
o = []

for x in p:
    if x == 1:
        o.append('.')
    if x == 0:
        o.append(' ')