如何根据分隔符将字符串拆分为多个变量

时间:2021-04-09 11:48:14

标签: python python-3.x

我有一个字符串变量 var1,它在 python 中有值 abc_123_xyz_321_123_123 总是有 6 个值用下划线“_”分隔 但这些值是动态的,这意味着根据不同的场景可能会有不同的值。

我正在尝试将每个值存储到一个不同的变量中,如下所示:

a=abc
b=123
c=xyz
d=321
e=123
f=123

我试过了:

a,b,c,d,e,f=a,b = var1.split('_');

print(a,b,c,d,e,f)

但我认为这不是正确的做法。

更新:

Traceback (most recent call last):
  File "C:/Users/r/Desktop/f1.py", line 30, in threaded
    a,b,c,d,e,f=a,b = var1.split('_');
ValueError: too many values to unpack (expected 2)

更新 2:

这是完整的代码段:

    data = c.recv(1024)
    dataa1=data.decode("utf-8") 
    #print(dataa1)
    var1=dataa1[0]
    a,b,c,d,e,f = var1.split('_');

这是错误:

a,b,c,d,e,f = var1.split('_');
ValueError: not enough values to unpack (expected 6, got 1)

2 个答案:

答案 0 :(得分:0)

问题在于您试图将 split 的结果分配给元组 a, b。但是,您可以执行以下操作:

var1 = "abc_123_xyz_321_123_123"

a, b, c, d, e, f = head, *tail = var1.split("_")
print(a, b, c, d, e, f)
print(head, tail)

这将字符串拆分为 6 个单独的字段,并拆分为第一个和元素以及其余元素,这似乎是您在分配给 a, b 时尝试执行的操作

答案 1 :(得分:0)

您可以先将值分配给列表,然后再将列表分配给变量,而不是将值分配给 a,b,c,d,e,f,因为如果变量更多或拆分值更多,拆分有时不会分配。试试下面的代码。

var1 = "abc_123_xyz_321_123_123" # as split function works only on strings
list1 = var1.split("_");
a,b,c,d,e,f f = list1

希望这能解决您的问题。