jjxx2005 发表于 2020-7-29 16:10:05

字符串转换成列表的疑问?

a = '41,84|21,56'
l1 = []
if "|" in a:
    l2 = a.split("|")
    n1 = len(l2)
    for i in range(n1):
      xy_list = []
      x = int(l2.split(','))
      y = int(l2.split(','))
      print(f'第{i}次的x坐标是{x},第{i}次的y坐标是{y}')
      xy_list.append(x)
      xy_list.append(y)
      l1.append(xy_list)
else:
    x = int(a.split(','))
    y = int(a.split(','))
    xy_list = []
    xy_list.append(x)
    xy_list.append(y)
    l1.append(xy_list)
print(l1)


以上写法,我觉得代码太多了,能不能简单明了的写出来这个效果。

代码目的:
假如字符串 a = '41,84|21,56'   就转换成[ , ]      就是大列表里面有两个小列表,每个小列表里面2个元素
否则字符串 a = '41,84'就转换成 [ ]

Twilight6 发表于 2020-7-29 16:23:37


这样吧

a = '41,84|21,56'
a = '41,84'

if '|' in a:
    new = [ ) for i in a.split('|')] for j in range(2) ]
    print(new)
else:
    new =
    print(new)

Stubborn 发表于 2020-7-29 16:33:34

a = '41,84|21,56'
if "|" in a:
    l2 = [), int(i.split(','))] for i in a.split("|")]
else:
    l2 = ),int(a.split(','))]
print(l2)

jjxx2005 发表于 2020-7-29 16:53:36

Stubborn 发表于 2020-7-29 16:33


您的回答也是正确的,我是按先后顺序给的最佳答案。但是您回答我问题了,我决不能白嫖。给您加分支持
页: [1]
查看完整版本: 字符串转换成列表的疑问?