python数据结构
字符串
pyhton中的字符串的索引序号可以是正数也可以是负数,复数从-1开始算,正数从0开始
没有步长切片:
- 语法s[ start : stop ]
- 如果从开头截取到某个特定的位置可以用 [ : a]来表示
- 如果从某一位开始截取到最后一位可以用[ a : ]来表示
步长切片:
-
语法:s[ start : stop :stride]
-
步长的那个地方设置为负数,表示从右向左取字符串,步长的绝对值大于1表示间隔的取数。
-
开始的部分那个截取下标也要从负数计算,或者start必须大于结束的下标,因为它是从右开始的截取的。
# 没有步长的简单切片
def str_demo1():
s = "0123456"
print(s[-1])
print(s[0])
print(s[:2])
print(s[1:])
# 步长的简单切片
def str_demo2():
s = "0123456"
print(s[1:6:2])
print(s[::2])
print(s[-1:3:-2])
print(s[6:1:-2])
if __name__ == '__main__':
str_demo1()
str_demo2()
列表
- 可修改
- d=[value1,value2]
- 作为一个方括号内的逗号分隔值出现,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
- 列表的数据项不需要具有相同的类型
def list_demo1():
s = [1, 2.5, "hello", ["a", "b"], {}]
print(s)
print(type(s[0]))
print(type(s[1]))
print(type(s[2]))
print(type(s[3]))
print(type(s[4]))
# 步长的简单切片
def list_demo2():
s = [1, 1, 2.5, 3, 4, 5]
print(len(s))
print(max(s))
print(min(s))
print(s.count(1))
s.reverse()
print(s)
print(s.index(1))
s.extend([6, 9, 2, 2])
print(s)
s.remove(9)
print(s)
s.pop(2)
print(s)
# 组合、重复、
def list_demo3():
s1 = ['a', 'b', 'c']
s2 = ['d', 'e', 'f']
print(s1 + s2)
print(s1 * 4)
print('a' in s1)
for x in s1:
print(x)
s1[0] = 'f'
print(s1)
s3 = s1.copy()
print(s3)
s3.clear()
print(s3)
if __name__ == '__main__':
list_demo3()
元组
- 不可修改
- d=(value1,value2)
- Python的元组与列表类似,不同之处在于元组的元素不能修改。
- 元组使用小括号,列表使用方括号。
- 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
def tuple_demo1():
s = (1,2,5,2,3,1)
print(s)
print(type(s[-1]))
print(s)
if __name__ == '__main__':
tuple_demo1()
字典
- 字典是另一种可变容器模型,且可存储任意类型对象。
- d = {key1 : value1, key2 : value2 }
- 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
- 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
def map_demo1():
map = {'a': 1, '2': ["aaa", "ppp"], ("ssss",): 2}
print(map[("ssss",)])
print(map.values())
print(map.keys())
s=map.fromkeys((1,2,3),[4,5,6])
print(s)
if __name__ == '__main__':
map_demo1()