python3 列表的特性
1.列表的定义
a.定义一个空的列表
l = []
print(type(l))
b.定义一个普通的列表
l2 = [1, 2e+8, 2j+9, True, "hello"] ####列表可以放置各种类型的字符串
c.定义单值列表
l3 = [ "hello" ]
2.列表索引
print(l2[0]) #索引列表第一个字符出为1
print(l2[-1]) #索引列表的最后一个字符o
3.列表的增加
languages = ["shell", "c", "c++", "java", "python"]
a. append;##追加一个元素到列表的最后
languages.append("c#")
print(languages)
b. extend:追加其他列表里面的元素到指定列表中
other_languages = ["php","html5"] ##指定另外的列表
languages.extend(other_languages) ###将另外的列表元素追加到指定的列表里面
languages.append(other_languages) ###追加其他列表到指定列表的最后位置;
print(languages)
c. insert : 给列表指定位置添加元素;
languages.insert(0,"html5")
print(languages)
languages.insert(3,"php")
print(languages)
4.列表的删除
list = ["shell", "java", "c++", "python"]
remove:删除指定值--------------->删除指定元素后列表内容改变,传递给下一个命令
list.remove("c++") ####删除C++
print(list)
list.remove("python")
print(list)
pop删除指定索引值,默认情况删除最后一个元素;(没有定义列表,所以作用的是上一个命令执行后的列表;)
list.pop()
print(list)
list.pop(-1) ########删除列表的最后一个元素
print(list)
del 删除列表元素,可以通过索引以及切片的方式进行删除;
l1 = [1, 2, 3, 4, "hello"]
del l1[0] #####删除第一个元素
print(l1)
del l1[:-1] #####删除除了最后一个元素的其他元素:列表为上一条命令后的列表
print(l1)
clear ####清空列表
l1.clear()
print(l1)
5.删除列表的重复元素
l = ["shell", "java", "python", "shell", "php"]
new_l = []
for i in l: # print(l.count(i)) #计算赋值的i元素在列表里面出现的次数
if i not in new_l and l.count(i) == 1:
new_l.append(i)
print(new_l)
a = 1 #赋值为整型
b = "1" #赋值为字符串
print(type(a),type(b))
6.修改列表中的元素
一:通过索引修改列表
list = ["hello", "python", "c++"]
原理将新的元素赋值给索引位置
list[1] = "1"
print(list)
二:通过切片的方法修改列表
原理将新的元素或者列表赋值切片位置
list = ["hell", "python", "c++", "java"] list[:1] = ["python", "shell"] #将列表的元素赋值给list列表的第一个元素 print(list)
list = ["hell", "python", "c++", "java"] list[:2] = ["python", "shell"] #将列表的两个元素分别赋值给list列表的第一与第二个元素 print(list)
list = ["hell", "python", "c++", "java"] list[:3] = ["python", "shell"] #将列表的两个元素分别赋值给list列表的第一与第二个元素,第三个元素没有,不进行赋值删除元素 print(list)
7.列表的复制
第一种方法:
languages = ["shell", "c", "c++", "java", "python"]
languages1 = languages.copy()
print(id(languages), id(languages1)) #使用.copy复制命令将languages复制一份赋值于languages1
languages.append("php")
print(languages,id(languages))
print(languages1,id(languages1))
第二种方法:(通过切片的方式进行复制)
languages = ["shell", "c", "c++", "java", "python"]
languages1 = languages[:]
print(id(languages),id(languages1)) #每刷新一次。id都会进行改变
languages.append("c++")
print(languages,id(languages))
print(languages1,id(languages1))
以下方法不能实现复制,因为两个变量指向同一内存地址:给一个变量赋值另外一个变量也会发生改变;复制,我们愿望一个变量改变另外变量不会发生变化
languages1 = languages
print(id(languages),id(languages1))
languages.append("c++l")
print(languages,id(languages))
print(languages1,id(languages1))
8.列表的查看
languages = ["shell", "c", "python", "shell", "a", "d"]
print(languages.count("shell")) #计算shell在列表里面出现的次数
print(languages.index("shell")) #打印shell在列表里面第一次出现的索引值
9.is 命令与 ==命令的区别
id :是在内存中存储的位置 (在python里面一些小整型数据的id值是固定的)
type:变量,类型 value:值是否相等
is 判断:两边数据的类型type,值value以及内存的位置id
== 判断:两边数据的类型type以及值value
is 表示是对象表示符,表示两个变量的值是否相同;
== 表示值是否相等