Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-使用列表而不是字符串?_Python - Fatal编程技术网

Python-使用列表而不是字符串?

Python-使用列表而不是字符串?,python,Python,: “不要修改字符串 将它们作为列表使用;仅在需要时将它们转换为字符串 …代码示例 Python字符串是不可变的(即,它们不能被修改)。这有很多原因。使用列表直到你没有选择,然后才将它们转换为字符串。” 这被认为是最佳实践吗 我觉得有点奇怪,Python有返回新修改字符串的方法(如upper()、title()、replace()等),但没有返回新字符串的insert方法。我错过了这样一种方法吗 编辑:我试图通过插入字符重命名文件: import os for i in os.listdir('

:

“不要修改字符串

将它们作为列表使用;仅在需要时将它们转换为字符串

…代码示例

Python字符串是不可变的(即,它们不能被修改)。这有很多原因。使用列表直到你没有选择,然后才将它们转换为字符串。”

这被认为是最佳实践吗

我觉得有点奇怪,Python有返回新修改字符串的方法(如upper()、title()、replace()等),但没有返回新字符串的insert方法。我错过了这样一种方法吗

编辑:我试图通过插入字符重命名文件:

import os
for i in os.listdir('.'):
    i.insert(3, '_')
由于不变性,它不起作用。添加到字符串的开头效果很好,但:

for i in os.listdir('.'):
    os.rename(i, 'some_random_string' + i)
Edit2:解决方案:

>>> for i in os.listdir('.'):                                                │··
...  os.rename(i, i[:4] + '_' + i[4:])
切片当然很好,解决了我的问题,但是为什么没有返回新字符串的insert()方法呢


谢谢您的帮助。

如果您想在特定位置插入,可以使用切片和+。例如:

a = "hello"
b = a[:2] + '_S1M0N_' + a[2:]

然后b将等于he_S1M0N_llo。

如果要在特定位置插入,可以使用切片和+。例如:

a = "hello"
b = a[:2] + '_S1M0N_' + a[2:]

然后b将等于he_S1M0N_llo。

如果对字符串进行大量修改,至少可以说这是一种最佳做法。这不是通用的最佳做法。这只是一种在执行繁重的字符串操作时解决性能问题的有用技术


我的建议是,在性能成为问题之前不要这样做。

如果要对字符串进行大量修改,这至少可以说是一种最佳做法。这不是通用的最佳做法。这只是一种在执行繁重的字符串操作时解决性能问题的有用技术


我的建议是,在性能成为问题之前不要这样做。

您可以使用以下语法定义一个通用函数,该函数可以在任何序列(字符串、列表、元组等)上工作:


您可以使用以下语法定义适用于任何序列(字符串、列表、元组等)的通用函数:


不,没有
insert
方法,但是您可以轻松地使用可用的方法来完成这项工作。您的问题是关于插入还是关于最佳实践?感觉不够具体。如果你有一个特定的问题(也许是一个你不确定的解决方案),为什么不在这里发布呢?嗨。我正在尝试(再次)学习Python。我在给自己设置愚蠢的挑战。这是将FILE1 FILE2 FILE3重命名为FILE_1 FILE_2 FILE_3。谢谢。如果您事先知道这两种格式,您根本不需要将其中一种转换为另一种:
对于范围(1,4)中的i:os.rename('FILE'+str(i),'FILE'+str(i))
。谢谢。如果您只想在循环中的每个项目的特定位置插入下划线(或其他字符),该怎么办?
data[:4]+'.++data[4://code>No,没有
insert
方法,但您可以轻松地做到这一点,并且可以使用可用的方法做得更多。您的问题是关于插入还是关于最佳实践?感觉不够具体。如果你有一个特定的问题(也许是一个你不确定的解决方案),为什么不在这里发布呢?嗨。我正在尝试(再次)学习Python。我在给自己设置愚蠢的挑战。这是将FILE1 FILE2 FILE3重命名为FILE_1 FILE_2 FILE_3。谢谢。如果您事先知道这两种格式,您根本不需要将其中一种转换为另一种:
对于范围(1,4)中的i:os.rename('FILE'+str(i),'FILE'+str(i))
。谢谢。如果您只想在循环中的每个项目的特定位置插入下划线(或其他字符),该怎么办?
data[:4]+'.+data[4:][/code>,这很有用。如此有用,我想知道为什么它还没有在Python中出现。。。!那很有用。如此有用,我想知道为什么它还没有在Python中出现。。。!