将列表的第n个元素与另一个第n个元素进行比较,然后交换if语句true PYTHON 3.4.3

将列表的第n个元素与另一个第n个元素进行比较,然后交换if语句true PYTHON 3.4.3,python,list,element,Python,List,Element,我有两张单子。它们都与剧院的礼堂有关。 第一个列表包含椅子的占用情况,如下所示: xxooxoxoooxoxo ooxoxooxoooxox ... ... 33221111112233 33333222233333 ... ... 3xxx11xx1xx2xx ... ... def foo2(): l1 = ['xxooxoxoooxoxo', 'ooxoxooxoooxox'] l2 = ['33221111112233' , '33333222233333'] l

我有两张单子。它们都与剧院的礼堂有关。 第一个列表包含椅子的占用情况,如下所示:

xxooxoxoooxoxo ooxoxooxoooxox ... ... 33221111112233 33333222233333 ... ... 3xxx11xx1xx2xx ... ...
def foo2():
    l1 = ['xxooxoxoooxoxo', 'ooxoxooxoooxox']
    l2 = ['33221111112233' , '33333222233333']
    l = []
    for i, row in enumerate(l1):
        t = [x if x is 'x' else l2[i][j] for j,x in enumerate(row) ]
        l.append(''.join(t))
    print l
我想做第三份清单,上面显示了空椅子的价格类别,如下所示:

xxooxoxoooxoxo ooxoxooxoooxox ... ... 33221111112233 33333222233333 ... ... 3xxx11xx1xx2xx ... ...
def foo2():
    l1 = ['xxooxoxoooxoxo', 'ooxoxooxoooxox']
    l2 = ['33221111112233' , '33333222233333']
    l = []
    for i, row in enumerate(l1):
        t = [x if x is 'x' else l2[i][j] for j,x in enumerate(row) ]
        l.append(''.join(t))
    print l
我在行RowCat[icatRow][chairPrice]=行[iRow][chairNumber]中收到以下错误:

TypeError:“str”对象不支持项分配

你能帮我做这个吗


谢谢

您的代码不是很像Python。试试像这样的东西

l1 = ['x','o','x']
l2 = [1,2,3]
l3 = [ r if r == 'x' else p for r,p in zip(l1,l2)]
返回一个带有

['x', 2, 'x']

你的代码不是很像Python。试试像这样的东西

l1 = ['x','o','x']
l2 = [1,2,3]
l3 = [ r if r == 'x' else p for r,p in zip(l1,l2)]
返回一个带有

['x', 2, 'x']

我是这样做的:

xxooxoxoooxoxo ooxoxooxoooxox ... ... 33221111112233 33333222233333 ... ... 3xxx11xx1xx2xx ... ...
def foo2():
    l1 = ['xxooxoxoooxoxo', 'ooxoxooxoooxox']
    l2 = ['33221111112233' , '33333222233333']
    l = []
    for i, row in enumerate(l1):
        t = [x if x is 'x' else l2[i][j] for j,x in enumerate(row) ]
        l.append(''.join(t))
    print l

我是这样做的:

xxooxoxoooxoxo ooxoxooxoooxox ... ... 33221111112233 33333222233333 ... ... 3xxx11xx1xx2xx ... ...
def foo2():
    l1 = ['xxooxoxoooxoxo', 'ooxoxooxoooxox']
    l2 = ['33221111112233' , '33333222233333']
    l = []
    for i, row in enumerate(l1):
        t = [x if x is 'x' else l2[i][j] for j,x in enumerate(row) ]
        l.append(''.join(t))
    print l
您可以使用和执行以下操作:

您可以使用和执行以下操作:

试试这个:

for row, price in zip(rows, prices):
    new_row = ''
    for char,pri in zip(row,price):
        if char == 'o':
             new_row += str(pri)
        else:
              new_row += char

    print(new_row)
对于样本数据

rows = ['xoxo','oxox']
prices = ['1234','5678']
请注意,这里使用字符串相当于使用列表列表,因为在许多情况下,字符串可以在Python中被视为列表,例如遍历字符串中的所有字符/遍历列表中的所有元素

我出去:

x2x4
5x7x
当然,您可能希望将printnew_行更改为您希望对被操纵行执行的任何操作,请尝试以下操作:

for row, price in zip(rows, prices):
    new_row = ''
    for char,pri in zip(row,price):
        if char == 'o':
             new_row += str(pri)
        else:
              new_row += char

    print(new_row)
对于样本数据

rows = ['xoxo','oxox']
prices = ['1234','5678']
请注意,这里使用字符串相当于使用列表列表,因为在许多情况下,字符串可以在Python中被视为列表,例如遍历字符串中的所有字符/遍历列表中的所有元素

我出去:

x2x4
5x7x
当然,您会想更改printnew_row行,以便对您的操纵行执行任何您想执行的操作,只是为了好玩:l3=[seat[0 if'x'in seat else 1]用于zipl1、l2]中的座位或maplambda x:x[0]如果x[0]='x'else x[1],zipl1、l2只是为了好玩:l3=[seat[0 if'x'in seat else 1]用于zipl1、l2]中的座位或maplambda x:x[0]如果x[0]=='x'其他x[1],zipl1,l2