python中列表中的方法(重点) 列表的基本操作(赋值、删除和分片赋值)

shengge0 2020-01-03

第 7 课: 列表的基本操作(赋值、删除和分片赋值) # 列表的基本操作 # 赋值、删除列表元素、分片赋值 # 1. 列表元素的赋值 values = ["Bill", "Mary", "John"] values[0] = "Mike" values[1] = 10.4 values[-1] = "Joe" # values[-5] = "abc" # 抛出异常 print(values) # [‘Mike‘, 10.4, ‘Joe‘] # 删除列表中的元素 numbers = [1,2,3,4,5,6,7,8] del numbers[3] print(len(numbers)) # 7 print(numbers) # [1, 2, 3, 5, 6, 7, 8] # 分片赋值 names = ["Bill", "Joe", "李宁","马云"] print(names[3:]) # [‘马云‘] names[3:] = ["a","b","c"] print(len(names)) # 6 print(names) # [‘Bill‘, ‘Joe‘, ‘李宁‘, ‘a‘, ‘b‘, ‘c‘] name = list("John") # 将一个字符串转化为一个列表 print(name) #[‘J‘, ‘o‘, ‘h‘, ‘n‘] name[2:] = list("e") print(name) ## [‘J‘, ‘o‘, ‘e‘] print(numbers) # [1, 2, 3, 5, 6, 7, 8] # 删除 和del 函数差不多 但是del只能删除一个 numbers[3:6] = [] print(numbers) # [1, 2, 3, 8] -------------------- 列表与元组的加法 乘法 data1 = [1,2,3,4] data2 = [2,3,4,5,"hello"] data3 = data1 + data2 print(data3) # [1, 2, 3, 4, 2, 3, 4, 5, ‘hello‘] num1 = (1,2,3,4) num2 = (3,4,‘ff‘) num3 = num1 + num2 print(num3) # (1, 2, 3, 4, 3, 4, ‘ff‘) 如何把一个元组 强制的转化为一个列表呢? num1 = (1,2,3,4) print(list(num1)) # [1, 2, 3, 4] 如何把一个列表 强制转化为一个元组呢? data1 = [1,2,3,4] print(tuple(data1)) # (1, 2, 3, 4) 列表与元组的乘法 a1 = [1,2,3,4] print(a1 * 2) # [1, 2, 3, 4, 1, 2, 3, 4] b1 = (2,3,4,5) print(b1 * 3) # (2, 3, 4, 5, 2, 3, 4, 5, 2, 3, 4, 5) 字符串乘法: print(‘a‘ * 10) # aaaaaaaaaa print(‘a,‘ * 10) # a,a,a,a,a,a,a,a,a,a, data1 = [1,2,3,4] num2 = (3,4,‘ff‘) print(data1 + list(num2) * 2) # [1, 2, 3, 4, 3, 4, ‘ff‘, 3, 4, ‘ff‘] 先做乘法 再做加法 ----------------------------------------------- 第8课 列表中的方法 重点啊 ****** # 列表方法 ‘‘‘ 1. append:在列表最后(结尾)插入新的值,改变原来的列表 2. clear:用于清除列表的所有内容 3. copy:用于复制一个列表 //通过分片也是可以复制一个列表的 4. count:用于统计某个元素在列表中出现的次数 5. extend:用于在列表结尾插入另一个列表,也就是让两个列表首尾相接。 该方法改变的是被扩展的列表。 list1.extend(list2)//这一步是 把list2接到list1的后面 他改变的是list1的本身 比如list1长度为3 list2长度为4 那么我们调用这个方法后 list1的长度 就变成了7 改变了list1的长度 ,而我们之前讲过的 列表的相加创建一个新的列表 和extend 这个方法 是本质的区别 6. index:用于从列表中找出某个值第一次出现的索引位置 7. insert:用于将值插入到列表中的指定位置 //这个方法可以取代append 因为可以在列表中的任意位置插入 8. pop:用于移除弹出列表中的元素(默认是最后一个元素),并返回该元素的值 9. remove:用于移除列表中某个值的第一次匹配项 10. reverse:用于将列表中的元素反向存放 // 把序列中的步长设置成-1的效果是一样的 11. sort:用于对列表进行排序,调用该方法会改变原来的列表 ‘‘‘ from sqlalchemy.sql.expression import false print("--------append方法---------") # append:在列表最后(结尾)插入新的值,改变原来的列表 numbers = [1,2,3,4,5] numbers.append(20) print(numbers) #[1, 2, 3, 4, 5, 20] numbers.append("hello") # 这个值可以为字符串 numbers.append([1,2,3]) # 也可以为另外一个列表 print(numbers) #[1, 2, 3, 4, 5, 20, ‘hello‘, [1, 2, 3]] print("---------clear方法---------") # clear:用于清除列表的所有内容 names = ["Bill", "Mary"] print(names) #[‘Bill‘, ‘Mary‘] names.clear() print(names) #[] print("----------copy方法----------") # copy:用于复制一个列表 a = [1,2,3,4,5] acopy = a acopy1 = a[:] #通过分片复制列表 acopy1 和 a 这2个列表的值是完全一样的 但是是2个不同的序列 acopy2 = a.copy() a[3] = "hello" #这一步的目的是 要改变 3这个位置上的数 print(acopy) #[1, 2, 3, ‘hello‘, 5] print(acopy1) #[1, 2, 3, 4, 5] print(acopy2) #[1, 2, 3, 4, 5] # 分片的方式或者是copy的方式 就是一个副本 print("----------count方法-----------") # count:用于统计某个元素在列表中出现的次数 search = ["he", "new", "he", [1,2,3],"he", "world", "peter",[1,2,3]] # 搜素“he”在search出现的次数 print(search.count("he")) # 3 print(search.count([1,2,3])) # 2 print(search.count(20)) # 如果没有找到指定的列表元素,返回0 print("------extend方法------") # extend:用于在列表结尾插入另一个列表,也就是让两个列表首尾相接。 a = [1,2,3] b = [4,5,6] a.extend(b) print(a) # [1, 2, 3, 4, 5, 6] a 这个列表改变了 a[2] =123 print(a) # [1, 2, 123, 4, 5, 6] a = [1,2,3] b = [4,5,6] x = a a = a + b x[2] = 543 print(a) # [1, 2, 3, 4, 5, 6] print(x) # [1, 2, 543] print("------index方法------") # index:用于从列表中找出某个值第一次出现的索引位置 numbers = [5,3,6,8] print(numbers.index(6)) # 2 6的位置上2 # print(numbers.index(10)) # 如果指定的值在列表中不存在,会抛出异常 print("-------insert方法-------") # insert:用于将值插入到列表中的指定位置 //这个方法可以取代append 因为可以在列表中的任意位置插入 numbers = [1,2,3,4,5] #numbers.insert(3,"four") # [1, 2, 3, ‘four‘, 4, 5] #print(numbers) # 使用分片赋值完成同样的效果 numbers[3:3]="four" print(numbers) # [1, 2, 3, ‘f‘, ‘o‘, ‘u‘, ‘r‘, 4, 5] numbers[3:3] = ["four"] # 开始索引和结束索引相等 不代表任何的元数 只是光标到达此位置 把这个位子代表4这个位子 print(numbers) # [1, 2, 3, ‘four‘, 4, 5] print("-------pop方法-------") # pop:用于移除弹出列表中的元素(默认是最后一个元素),并返回该元素的值 numbers = [1,2,3] print(numbers.pop()) # 默认不指定的话 就弹出 最后一个元数 3 结果为3 print(numbers.pop(1)) # 弹出第索引位子为1的元素 1表示 要弹出位子的索引 结果为2 print(numbers) # 我们弹出了2次 就剩下一个1 了 结果为 [1] print("---------remove方法---------") # remove:用于移除列表中某个值的第一次匹配项 words = ["he", "new", "he","yes"] words.remove("he") print(words) # 结果为 [‘new‘, ‘he‘, ‘yes‘] 只移除第一个 出现的第一个 print("------reverse方法--------") # reverse:用于将列表中的元素反向存放 numbers = [1,2,3,4,5,6,7] numbers.reverse() # [7, 6, 5, 4, 3, 2, 1] 倒序 如果执行2次 那么就又正面返回了 print(numbers) # 用分片的方法 第一个为开始索引 结束索引 步长 print(numbers[len(numbers)::-1]) # 结果为 [7, 6, 5, 4, 3, 2, 1] print("--------sort方法-------") # sort:用于对列表进行排序,调用该方法会改变原来的列表 numbers = [4,3,1,7,4,83,2,-3] numbers.sort() print(numbers) # [-3, 1, 2, 3, 4, 4, 7, 83] 排序 是一种升序的排序 改变了原来的列表 # 要是不想改变原来的列表怎么办? #方法1:使用分片或者copy的方法 将这个列表复制一份 然后在排序 numbers1 = [4,3,1,7,4,83,2,-3] numbers2 = numbers[:] # 分片复制方法 很简单 numbers2.sort() print(numbers1) # [4, 3, 1, 7, 4, 83, 2, -3] print(numbers2) # [-3, 1, 2, 3, 4, 4, 7, 83] numbers3 = numbers1.copy() # 用copy的方法 复制 print(numbers3) # [4, 3, 1, 7, 4, 83, 2, -3] #方法2 我们不使用sort这个函数 因为他改变了原来的列表 我们使用 sorted函数 这个函数是返回排好序的列表 sorted函数 不改变原来列表的顺序 # 可以对任意的序列进行排列 ,可以对字符串进行排列 x = [5,4,7,2] y = sorted(x) print(x) # [5, 4, 7, 2] print(y) # [2, 4, 5, 7] # 对字符串进行排序 print(sorted("www.baidu.com")) # [‘.‘, ‘.‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘i‘, ‘m‘, ‘o‘, ‘u‘, ‘w‘, ‘w‘, ‘w‘] # 利用askm值进行排序 从低到高 # 我们可以通过关键字 让他降序排列 x = [4,6,2,8,44,56,22] x.sort(reverse = True) # 关键字 reverse 为true 为降序 ;如果 为flase为升序 默认为升序 # reverse:用于将列表中的元素反向存放 print(x) # [56, 44, 22, 8, 6, 4, 2] x.sort(reverse = False) print(x) # [2, 4, 6, 8, 22, 44, 56]
课程九 元组   元组属于序列 
元组和列表的操作基本上上一样的,操作呢基本上是相同的,只有一点不一样,元组是只读的,元组是不可以修改的,列表中的所有修改操作,元组都不支持
# 元组
# 元组的定义是用 () 来定义的 

a = ()         # 这里就是定义了一个空的元组 
b = (1,2,3)
c = 1,2,3,4,5  # 这样的方式也是定义一个元组   基本上不用这个 
print(c)          # (1, 2, 3, 4, 5)

x = (30,)     # 这里一定要加 , 要不然就会当成一个值去处理了 
print(x)         # (30,)

print((12) * 12)   # 144    这里的12没有加, 就会当成一个值去处理 
print((12,) * 12)  # (12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12)      这里就是当成了一个元组去操作的 

aa = (1,2,4)
aa = aa.index(2)
print(aa)          # 结果为 1   index:用于从列表中找出某个值第一次出现的索引位置 

aa = (1,2,4,2,2)
# aa = aa.index(2)
aa = aa.count(2)
print(aa)         # 结果为3   count:用于统计某个元素在列表中出现的次数 
// 元组理论上只支持 index 和  count 方法  

// 元组和列表基本相同 为什么要用元组呢?有2点原因 
‘‘‘
1.  元组可以在映射中作为键值使用,而列表是不能作为键值使用 // kv的形似的话,后面讲到的字典的话,那么k(一组数和一组值作为k的话) 就必须要用 元组的 
2.  很多内建函数和方法的返回值就是元组,所以在使用这些函数和方法是必须使用元组
‘‘‘

列表和元组的小结:
1、序列包含 列表和元组
2、列表的表达方式为: names = ["Bill", "Mary", "Jack"] 
3、元组的表达方式为: b = (1,2,3) 
4、元组和列表的操作基本上上一样的,操作呢基本上是相同的,只有一点不一样,元组是只读的,元组是不可以修改的,列表中的所有修改操作,元组都不支持
# 我们以前讲过2种序列:1列表 2元组
# 共同点:都是通过索引引用元素值
# 不同点:列表是可读写的,元组是只读的
names = ["Bill", "Mike", "John", "Mary"]

numbers = ["1234", "4321", "6789", "6543"]

print(numbers[names.index("Mike")])   #4321
print(names[numbers.index("6543")])     # Mary

相关推荐

shangs00 / 0评论 2020-01-30