一.列表
Python中的列表个人认为是一个比较重要的知识点,它有点类似JAVA中数组/列表的结合体,且使用到了堆栈的相关知识
1.赋值:注意,赋值的时候,可以多中数据类型,取出的时候,原来是什么数据类型就是什么数据类型;取出的方式类似数组通过下标遍历不过python还可以反遍历(注意,正向遍历索引是从0开始,反向是从-1开始)
str5 = [21,33,'55',"66"]
print(str5[0]+33) ====》 结果为数字54
print(str5[2]) ===》结果为字符串的55
print(str5[-2]) ===》结果为字符串55
2.修改:直接重新赋值即可 例如上面的str5[0]=66(既然是重新赋值,也可以改变数据类型)
3.添加
1.列表末尾添加:append 例如:str5.append(88)
2.在列表指定位置插入:insert(索引位置,值) 例如 str5.insert(0,”ss”)
4.删除
1.如果确定要删除的数据的索引位置用del 例如: del str5[0]
2.取出并删除元素用pop(索引位置,默认为最后一个元素) 例如 i = strs.pop()
3.不知索引位置,只知道要删除的用 remove() 例如 str5.remove(‘55’) 注意remove()只删除第一个指定的值
5.对列表的排序操作
1.按字母排序sort()这个和Java的排序是一样的,且是永久的——也就是说你对列表进行了sort操作以后,列表中的数据就排序了,后面除非你改排序方法,要不然就一直是这个排序了,该方法还可以反字母顺序排序,只需加入参数reverse=true
例子:str=['d','m','r','a']
str.sort() ================>输出结果['a', 'd', 'm', 'r']
str.sort(reverse=True) ================>输出结果['r', 'm', 'd', 'a']
2.既然有永久的,那么也就有临时排序。临时排序代表只在本次生效,下次再引用到该列表,列表的排序还是旧排序。 sorted()这个方法和sort类似,区别在于这个是临时排序,且该方法是一个独立的方法不是列表的方法,使用起来是sorted(列表)
例如str=['d','m','r','a']
print(sorted(str)) ================>输出结果['a', 'd', 'm', 'r']
print(str) ================>输出结果['d','m','r','a']
3.反转列表目前的顺序用reverse() 例如 str.reverse() 注意只做反转不做排序
4.取长度 len(str)
5.遍历列表,这个和java差不多,通过for 变量名 in 被变量对象: (**注意for..in..后面有个冒号,且要注意缩进**)
例如:str=['d','m','r','a']
for i in str:
print(i)
6.切片:获取列表的一段数据 str[开始索引:结束索引],默认第一个索引为0最后一个索引为最后一个元素,切片结果还是列表。
7.列表复制:
7.1.如果是通过切面复制,那么不是引用,是一个全新的列表,新旧不联系
str=['d','m','r','a']
str_copy = str[:]
str.append('aa')
str_copy.append('AA')
print(str) ========》结果['d', 'm', 'r', 'a', 'aa']
print(str_copy) ========》结果['d', 'm', 'r', 'a', 'AA']
7.2.如果是直接等于的话,那么是引用,新旧有联系
str=['d','m','r','a']
str_copy = str
str.append('aa')
str_copy.append('AA')
print(str) ========》结果['d', 'm', 'r', 'a', 'aa', 'AA']
print(str_copy) ========》结果['d', 'm', 'r', 'a', 'aa', 'AA']
二.元组:和列表的差别在于元素不可修改(增,删,改都不可以,除非重新赋值),且用括号表示
1.定义:
Deimesion = (55,66)
2.重新赋值只允许整个重新赋值(说明是对象的引用)
3.遍历参考列表