在Python3中,如何将字符串列表转换为单独的字符串?
我想知道您是否有字符串列表,例如:在Python3中,如何将字符串列表转换为单独的字符串?,python,string,list,python-3.x,Python,String,List,Python 3.x,我想知道您是否有字符串列表,例如: l = ['ACGAAAG', 'CAGAAGC', 'ACCTGTT'] 如何将其转换为: O = 'ACGAAAG' P = 'CAGAAGC' Q = 'ACCTGTT' 您可以在不知道列表中的项目数的情况下执行此操作吗?您必须将它们存储为变量。 (变量无关紧要。)欢迎使用SE 结构已知 如果您知道字符串的结构,则可以简单地将其解压缩: O, P, Q = my_list 结构未知 使用for循环打开列表。对循环中的每个字符串执行操作。对于以下内容
l = ['ACGAAAG', 'CAGAAGC', 'ACCTGTT']
如何将其转换为:
O = 'ACGAAAG'
P = 'CAGAAGC'
Q = 'ACCTGTT'
您可以在不知道列表中的项目数的情况下执行此操作吗?您必须将它们存储为变量。
(变量无关紧要。)欢迎使用SE
结构已知
如果您知道字符串的结构,则可以简单地将其解压缩:
O, P, Q = my_list
结构未知
使用for循环打开列表。对循环中的每个字符串执行操作。对于以下内容,我仅打印每一个:
for element in l:
print(element)
祝你好运 欢迎来到SE
结构已知
如果您知道字符串的结构,则可以简单地将其解压缩:
O, P, Q = my_list
结构未知
使用for循环打开列表。对循环中的每个字符串执行操作。对于以下内容,我仅打印每一个:
for element in l:
print(element)
祝你好运 如果您事先不知道项目的数量,列表是保存项目的正确结构 不过,您可以先删除一些已知项,然后将未知项保留为列表:
a, b, *rest = ["ay", "bee", "see", "what", "remains"]
print("%r, %r, rest is %r" % (a, b, rest))
如果您事先不知道项目的数量,列表是保存项目的正确结构 不过,您可以先删除一些已知项,然后将未知项保留为列表:
a, b, *rest = ["ay", "bee", "see", "what", "remains"]
print("%r, %r, rest is %r" % (a, b, rest))
只要列表中的元素数等于要解包的变量数,它就可以工作。实际上,它可以用于任何iterable、tuple、list、set等
如果列表较长,则始终可以访问前3个元素(如果需要)
a = my_list[0]
b = my_list[1]
c = my_list[2]
还是一行
a, b, c = my_list[0], my_list[1], my_list[2]
更好的是,使用切片表示法,您可以获得包含前3个元素的右侧子列表
a, b, c = my_list[:3]
只要列表的大小至少为3,或者变量的数量是您想要的,这些方法就可以工作
a = my_list[0]
b = my_list[1]
c = my_list[2]
您还可以使用扩展的解包表示法
a, b, c, *the_rest = my_list
剩下的将是一个列表,列表中除前3个元素外的所有其他元素都在列表中,并且列表的大小必须为3或更多
这几乎涵盖了提取一定数量项目的所有方法
现在,根据您将如何处理这些,使用常规循环可能会更好
for item in my_list:
#do something with the current item, like printing it
print(item)
在每个迭代中,项将获取列表中一个元素的值,以便您在一次执行一项所需的操作
如果您希望在每次迭代中同时获取3个项目,那么有几种方法可以做到这一点 比如说
for i in range(3,len(my_list),3)
a,b,c = my_list[i-3:i]
print(a,b,c)
还有更多有趣的构造,比如
it = [iter(my_list)]*3
for a,b,c in zip(*it):
print(a,b,c)
以及其他与itertools模块相关的功能
但是现在你说了一些有趣的事情“每个术语都分配给一个变量”这是错误的方法,你不想让一个未知数量的变量很快变得混乱,你要处理列表,如果你想处理每个元素,有很多方法可以做,比如列表理解
my_new_list = [ some_fun(x) for x in my_list ]
还是老一套
my_new_list = []
for x in my_list:
my_new_list.append( some_fun(x) )
或者如果你需要同时处理更多的1个项目,那么将它与上面的一些项目结合起来
只要列表中的元素数等于要解包的变量数,它就可以工作。实际上,它可以用于任何iterable、tuple、list、set等
如果列表较长,则始终可以访问前3个元素(如果需要)
a = my_list[0]
b = my_list[1]
c = my_list[2]
还是一行
a, b, c = my_list[0], my_list[1], my_list[2]
更好的是,使用切片表示法,您可以获得包含前3个元素的右侧子列表
a, b, c = my_list[:3]
只要列表的大小至少为3,或者变量的数量是您想要的,这些方法就可以工作
a = my_list[0]
b = my_list[1]
c = my_list[2]
您还可以使用扩展的解包表示法
a, b, c, *the_rest = my_list
剩下的将是一个列表,列表中除前3个元素外的所有其他元素都在列表中,并且列表的大小必须为3或更多
这几乎涵盖了提取一定数量项目的所有方法
现在,根据您将如何处理这些,使用常规循环可能会更好
for item in my_list:
#do something with the current item, like printing it
print(item)
在每个迭代中,项将获取列表中一个元素的值,以便您在一次执行一项所需的操作
如果您希望在每次迭代中同时获取3个项目,那么有几种方法可以做到这一点 比如说
for i in range(3,len(my_list),3)
a,b,c = my_list[i-3:i]
print(a,b,c)
还有更多有趣的构造,比如
it = [iter(my_list)]*3
for a,b,c in zip(*it):
print(a,b,c)
以及其他与itertools模块相关的功能
但是现在你说了一些有趣的事情“每个术语都分配给一个变量”这是错误的方法,你不想让一个未知数量的变量很快变得混乱,你要处理列表,如果你想处理每个元素,有很多方法可以做,比如列表理解
my_new_list = [ some_fun(x) for x in my_list ]
还是老一套
my_new_list = []
for x in my_list:
my_new_list.append( some_fun(x) )
或者,如果您需要同时处理多个项目,请将其与上述部分结合起来,我不知道您的用例是否需要将字符串存储在不同的变量中。这通常是个坏主意 但是如果您确实需要它,那么可以使用
exec
builtin,它接受python语句的字符串表示并执行它
list_of_strings = ['ACGAAAG', 'CAGAAGC', 'ACCTGTT']
动态生成与excel工作表中的列名等效的变量名。(A,B,C…,Z,AA,AB…,AAA…)
variable_names=['A','B','C']
在这种特定情况下
for vn, st in zip(variable_names, list_of_strings):
exec('{} = "{}"'.format(vn, st))
测试它,
print(A,B,C)
将输出这三个字符串,您可以在程序的其余部分使用A,B和C
作为变量我不知道您的用例是否要求将字符串存储在不同的变量中。这通常是个坏主意
但是如果您确实需要它,那么可以使用exec
builtin,它接受python语句的字符串表示并执行它
list_of_strings = ['ACGAAAG', 'CAGAAGC', 'ACCTGTT']
动态生成与excel工作表中的列名等效的变量名。(A,B,C…,Z,AA,AB…,AAA…)
variable_names=['A','B','C']
在这种特定情况下
for vn, st in zip(variable_names, list_of_strings):
exec('{} = "{}"'.format(vn, st))
测试它,
print(A,B,C)
将输出这三个字符串,您可以在程序的其余部分使用A,B和C
作为变量