Python

Python中str、list、tuple的异同

勤劳的小蜜蜂 · 3月30日 · 2019年 · · ·

str、list、tuple都可以通过序列访问其中的元素值,通过 [ 起: 终 ] 切片。

索引从0开始,且 [ 起: 终 ) 左闭右开。

# 通过序列访问元素
>>> "beeij"[0]
'b'
>>> ["b","e","e","i","j"][0]
'b'
>>> ("b","e","e","i","j")[0]
'b'

# 切片
>>> "beeij"[0:5]
'beeij'
>>> ["b","e","e","i","j"][0:5]
['b', 'e', 'e', 'i', 'j']
>>> ("b","e","e","i","j")[0:5]
('b', 'e', 'e', 'i', 'j')

# 带步长切片
>>> "beeij"[::2]
'bej'
>>> ["b","e","e","i","j"][::2]
['b', 'e', 'j']
>>> ("b","e","e","i","j")[::2]
('b', 'e', 'j')

# "+" 操作
>>> "beeij"+".com"
'beeij.com'
>>> ["b","e","e","i","j"]+["c","o","m"]
['b', 'e', 'e', 'i', 'j', 'c', 'o', 'm']
>>> ("b","e","e","i","j")+("c","o","m")
('b', 'e', 'e', 'i', 'j', 'c', 'o', 'm')

# "*" 操作
>>> "beeij"*2
'beeijbeeij'
>>> ["b","e","e","i","j"]*2
['b', 'e', 'e', 'i', 'j', 'b', 'e', 'e', 'i', 'j']
>>> ("b","e","e","i","j")*2
('b', 'e', 'e', 'i', 'j', 'b', 'e', 'e', 'i', 'j')

# in 操作(同理还有 not in )
>>> "b" in "beeij"
True
>>> "b" in ["b","e","e","i","j"]
True
>>> "b" in ("b","e","e","i","j")
True

# len() 操作
>>> len("beeij")
5
>>> len(["b","e","e","i","j"])
5
>>> len(("b","e","e","i","j"))
5

# max() 操作  (比较ASCII值的大小,同理还有 min() 操作)
>>> max("beeij")
'j'
>>> max(["b","e","e","i","j"])
'j'
>>> max(("b","e","e","i","j"))
'j'

ord( str )


单个元素的元组需要表示为(1,),否则将作为括号表达式。

>>> (1)
1
>>> type((1))
<class 'int'>

>>> (1,)
(1,)
>>> type((1,))
<class 'tuple'>

通过序列获取的元素值是str类型,而切片的字段是原数据类型。

>>> ["b","e","e","i","j"][0]
'b'
>>> ["b","e","e","i","j"][0:5]
['b', 'e', 'e', 'i', 'j']

>>> ("b","e","e","i","j")[0]
'b'
>>> ("b","e","e","i","j")[0:5]
('b', 'e', 'e', 'i', 'j')

0 条回应