在Python3中,如何将字符串列表转换为单独的字符串?

2024-09-30 12:21:04 发布

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

我想知道您是否有字符串列表,例如:

l = ['ACGAAAG', 'CAGAAGC', 'ACCTGTT']

如何将其转换为:

O = 'ACGAAAG'
P = 'CAGAAGC'
Q = 'ACCTGTT'

你能在不知道列表中的项目数的情况下做这件事吗?必须将它们存储为变量。 (变量无关紧要。)


Tags: 字符串列表情况项目数acctgttacgaaagcagaagc
3条回答

欢迎来到SE!你知道吗

结构已知

如果您知道字符串的结构,那么您可以简单地将其解包:

O, P, Q = my_list

结构未知

使用for循环打开列表。对循环中的每个字符串进行处理。对于以下内容,我只是打印每一个:

for element in l:
    print(element)

祝你好运!你知道吗

a,b,c = my_list

只要列表中的元素数等于要解压的变量数,这就可以工作,它实际上可以处理任何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]

更好的是,使用slice表示法,您可以得到包含前3个元素的右边子列表

a, b, c = my_list[:3]

只要列表的大小至少是3,或者变量的数量是你想要的,这些都可以工作

您还可以使用扩展的解包表示法

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)

在每个迭代中,item将获取列表中一个元素的值,以便您在一次执行一个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) )

或者,如果您需要同时处理多个项目,请将其与上述部分结合使用

如果您事先不知道项目的数量,那么列表就是用来保存项目的正确结构。你知道吗

不过,您可以切掉一些已知的项目,并将未知的尾部作为一个列表:

a, b, *rest = ["ay", "bee", "see", "what", "remains"]
print("%r, %r, rest is %r" % (a, b, rest))

相关问题 更多 >

    热门问题