python修改嵌套列表中的字符串

2024-04-28 08:38:59 发布

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

我有一个嵌套列表结构中的字符串,有人能告诉我如何修改for循环中的字符串吗

例如,我试图删除字符串中的最后两个字符,这些值:/CLG-MAXFLOW

如果我这样做

example = 'slipstream_internal/slipstream_hq/36/CLG-MAXFLOW'

print(example[0:36])

这就是我想要的:

'slipstream_internal/slipstream_hq/36'

但如何将其应用于嵌套列表中的字符串

devices = [['slipstream_internal/slipstream_hq/36/CLG-MAXFLOW'],
            ['slipstream_internal/slipstream_hq/38/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/31/CLG-MAXFLOW'],
            ['slipstream_internal/slipstream_hq/21/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/29/CLG-MAXFLOW'],
            ['slipstream_internal/slipstream_hq/25/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/9/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/6/CLG-MAXFLOW'],
            ['slipstream_internal/slipstream_hq/13/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/14/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/30/CLG-MAXFLOW'],
            ['slipstream_internal/slipstream_hq/19/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/8/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/26/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/24/CLG-MAXFLOW'],
            ['slipstream_internal/slipstream_hq/34/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/11/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/27/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/20/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/23/CLG-MAXFLOW'],
            ['slipstream_internal/slipstream_hq/15/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/37/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/39/CLG-MAXFLOW',
            'slipstream_internal/slipstream_hq/10/CLG-MAXFLOW']]

Tags: 字符串列表forexample字符结构internaldevices
2条回答

如果输出必须与devices变量给出的结构相同,但字符串已更改,则可以执行以下操作:

for row in devices:
  for index, string in enumerate(row):
    row[index] = '/'.join(string.split('/')[:-1])

输出:

[['slipstream_internal/slipstream_hq/36'],
 ['slipstream_internal/slipstream_hq/38',
  'slipstream_internal/slipstream_hq/31'],
 ['slipstream_internal/slipstream_hq/21',
  'slipstream_internal/slipstream_hq/29'],
 ['slipstream_internal/slipstream_hq/25',
  'slipstream_internal/slipstream_hq/9',
  'slipstream_internal/slipstream_hq/6'],
 ['slipstream_internal/slipstream_hq/13',
  'slipstream_internal/slipstream_hq/14',
  'slipstream_internal/slipstream_hq/30'],
 ['slipstream_internal/slipstream_hq/19',
  'slipstream_internal/slipstream_hq/8',
  'slipstream_internal/slipstream_hq/26',
  'slipstream_internal/slipstream_hq/24'],
 ['slipstream_internal/slipstream_hq/34',
  'slipstream_internal/slipstream_hq/11',
  'slipstream_internal/slipstream_hq/27',
  'slipstream_internal/slipstream_hq/20',
  'slipstream_internal/slipstream_hq/23'],
 ['slipstream_internal/slipstream_hq/15',
  'slipstream_internal/slipstream_hq/37',
  'slipstream_internal/slipstream_hq/39',
  'slipstream_internal/slipstream_hq/10']]

并非最佳解决方案,但值得一试:

def check_about(lists:list):
    for i,j in enumerate(lists):
        if isinstance(j,list):
            check_about(j)
        else:
            lists[i]=lists[i].strip('/CLG-MAXFLOW')
    return lists
print(check_about(devices))

相关问题 更多 >