繁体   English   中英

Python中的字符串和一位数字符串数组有什么区别吗?

[英]Is there any difference between string and array of one-digit strings in Python?

引用 w3schools,

与许多其他流行的编程语言一样,Python 中的字符串是代表 unicode 字符的字节 arrays。

'abc'['a', 'b', 'c']有什么区别吗? 有没有办法在不使用type()的情况下区分第一个和第二个示例?

Python 中的字符串不是“字节数组”。 它们是第一个 class 对象 - 是的,底层 object 确实有一个缓冲区,其中存储了代表 unicode 字符的字节 - 但这是不透明的。

现在,字符串是单字符字符串的序列(不是字节,不是其他类型)。 因此,大多数也接受或期望单字符字符串序列的代码将使用任意大小的字符串,以及任何其他此类序列,例如您的示例中的单字符字符串列表。

除此之外,字符串与“字符串列表”根本不同。 可视化字符串最常用的方法可能是简单的“打印”,字符串的打印和这样的列表会有很大的不同。

然后,如果您需要找到代码中的差异,使用类型或调用isinstance(myvar, str)就足够了。

请注意,您引用的内容是“字节数组”。 ['a', 'b', 'c']是一个列表,而不是一个数组。 他们谈论的是 memory 中作为数组的内部表示,而不是它在语言中的使用方式。

许多操作在字符串和列表上的工作方式不同。 特别是,搜索操作在字符串中查找子字符串,但只是在列表中查找单个元素。

s = 'abc'
l = ['a', 'b', 'c']
print('ab' in s) # prints True
print('ab' in l) # prints False

还有许多操作只适用于一种或另一种类型。 例如,正则表达式匹配将适用于字符串,而不是列表。 字符串是不可变的,因此append()pop()等修改操作仅适用于列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM