如何在Python中将逗号分隔的字符串转换为列表?

时间:2011-10-21 01:33:51

标签: python parsing list tuples

给定一个字符串,该字符串是由逗号分隔的多个值的序列:

mStr = 'A,B,C,D,E' 

如何将字符串转换为列表?

mList = ['A', 'B', 'C', 'D', 'E']

7 个答案:

答案 0 :(得分:209)

您可以使用str.split方法。

>>> my_string = 'A,B,C,D,E'
>>> my_list = my_string.split(",")
>>> print my_list
['A', 'B', 'C', 'D', 'E']

如果你想将它转换为元组,只需

>>> print tuple(my_list)
('A', 'B', 'C', 'D', 'E')

如果您要附加到列表中,请尝试以下操作:

>>> my_list.append('F')
>>> print my_list
['A', 'B', 'C', 'D', 'E', 'F']

答案 1 :(得分:10)

如果字符串中包含整数,如果您想避免将它们单独转换为int,则可以执行以下操作:

mList = [int(e) if e.isdigit() else e for e in mStr.split(',')]

它被称为 list comprehension ,它基于set builder notation。

前:

>>> mStr = "1,A,B,3,4"
>>> mList = [int(e) if e.isdigit() else e for e in mStr.split(',')]
>>> mList
>>> [1,'A','B',3,4]

答案 2 :(得分:4)

>>> some_string='A,B,C,D,E'
>>> new_tuple= tuple(some_string.split(','))
>>> new_tuple
('A', 'B', 'C', 'D', 'E')

答案 3 :(得分:2)

请考虑以下内容以处理空字符串的情况:

>>> my_string = 'A,B,C,D,E'
>>> my_string.split(",") if my_string else []
['A', 'B', 'C', 'D', 'E']
>>> my_string = ""
>>> my_string.split(",") if my_string else []
[]

答案 4 :(得分:0)

您可以使用此功能将以逗号分隔的单个字符串转换为列表-

def stringtolist(x):
    mylist=[]
    for i in range(0,len(x),2):
        mylist.append(x[i])
    return mylist

答案 5 :(得分:0)

char num[1001];
int digit[10];
int j,i;
int count;
scanf("%s",num);

for(i=48;i<=57;i++)
{ 
  count = 0;
  for(j=0; num[j] != EOF;j++)
  {
    if(num[j] - '0' == i / 10 && num[j+1] - '0' == i % 10)
    {
        printf("%c", num[j] - '0');
        count++;
    }
  }
  printf("%d: %d \n",i, count);
}
printf("\n"); 
return 0;
// This code will print the digits and the frequency in a new line:
48: n times
49: n times
.
.
.
57: n times

答案 6 :(得分:-1)

您可以在,上拆分该字符串并直接获取列表:

mStr = 'A,B,C,D,E'
list1 = mStr.split(',')
print(list1)

输出:

['A', 'B', 'C', 'D', 'E']

您还可以将其转换为n元组:

print(tuple(list1))

输出:

('A', 'B', 'C', 'D', 'E')