Python中数组内字符串的拆分值

2024-06-16 12:53:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为arr的数组,我想分割每个数组的第二个值。这意味着,如果我0-6我想将其修改为'0','6'

我所拥有的:

arr = [['PROVEEDOR', '0-6', '11111'], ['tiempo ida pulidor', '6-14', '33333']]

我想要的是:

^{pr2}$

我该如何进行转换?它总是第二个值,总是有两个数字。我知道我必须使用.split('-'),但我不知道如何让它在这里工作来进行替换,因为我必须在arr中包含的所有数组之间迭代。在

提前谢谢。在


Tags: 数字数组splitarridatiempopr2proveedor
3条回答

如果您想就地完成:

In [83]: arr = [['PROVEEDOR', '0-6', '11111'], ['tiempo ida pulidor', '6-14', '33333']]

In [84]: for i in arr:
    ...:     i[1:2]=i[1].split('-')

In [85]: arr
Out[85]: [['PROVEEDOR', '0', '6', '11111'], ['tiempo ida pulidor', '6', '14', '33333']]

试试这个:

def splitfirst(a):
    a[1:2] = a[1].split('-')
    return a
newarr = [splitfirst(a) for a in arr]

怎么回事?好吧,你可以指定一个切片,用一个新的序列替换列表的那部分。这就是底线

^{pr2}$

是的。它将片1:2(索引为1的元素)替换为新的序列,这是我们在本例中拆分的结果。在

因为这个解决方案依赖于赋值给一个切片,这是一个语句,我们不能没有一个单独的函数。等待。我要去看看能不能找到点什么。。。在

编辑:为喜欢的人提供在线服务:

^{3}$

这是怎么回事?好。。。实际上和之前完全一样,但是使用了神奇的方法__setslice__,而不是切片赋值的语法糖。我使用表达式的or a部分来生成arr元素,因为__setslice__返回{}。在

试试这个

arr = [['PROVEEDOR', '0-6', '11111'], ['tiempo ida pulidor', '6-14', '33333']]

new_arr = []
for x in arr:
    new_val = [x[0]]
    new_val.extend(x[1].split('-'))
    new_val.append(x[2])
    new_arr.append(new_val)

print new_arr

相关问题 更多 >