在python中创建字符串数组的最佳方法是什么?

2020-12-04 14:55:46 发布

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

我对Python和它的库比较陌生,我想知道如何创建一个具有预设大小的字符串数组。在java中很简单,但我想知道如何在python中做到这一点。

到目前为止我能想到的就是

strs = ['']*size

当我试图调用它的字符串方法时,调试器会给我一个错误X操作不存在于对象元组中。

如果是在java中,这就是我想要做的。

String[] ar = new String[size];
Arrays.fill(ar,"");

请帮忙。

错误代码

    strs[sum-1] = strs[sum-1].strip('\(\)')
AttributeError: 'tuple' object has no attribute 'strip'

问题:如何在保持代码干净的同时,在Python中执行Java中的常规操作。

3条回答
网友
1楼 ·

在Python中,通常倾向于使用一个非固定大小的列表(也就是说,可以动态地添加/删除项)。如果遵循此操作,则无需提前分配固定大小的集合并用空值填充它。相反,在获取或创建字符串时,只需将它们添加到列表中。当需要删除值时,只需从字符串中删除适当的值。我想你可以用这种方法来做这个。例如(在Python 2.x语法中):

>>> temp_list = []
>>> print temp_list
[]
>>> 
>>> temp_list.append("one")
>>> temp_list.append("two")
>>> print temp_list
['one', 'two']
>>> 
>>> temp_list.append("three")
>>> print temp_list
['one', 'two', 'three']
>>> 

当然,有些情况可能需要更具体的东西。在你的情况下,一个好主意可能是使用一个deque。看看这里的帖子:Python, forcing a list to a fixed size。通过这个,您可以创建一个具有固定大小的deque。如果在末尾追加新值,则删除第一个元素(deque的头),并将新项追加到deque上。这可以满足您的需要,但我不认为这是Python的“规范”。

网友
2楼 ·

在python中,你通常不会做你想做的事情。但是,下面的代码可以做到这一点:

strs = ["" for x in range(size)]
网友
3楼 ·

简单的回答是,“你不需要”。在你需要固定长度的东西的时候,你要么固守旧习惯,要么用自己独特的一组约束为一个非常具体的问题写作。

相关问题