zoukankan      html  css  js  c++  java
  • list列表

      1 # 计算三个人的年龄的平均值
      2 age1 = 20
      3 age2 = 50
      4 age3 = 55
      5 print((age1 + age2 + age3) / 3)
      6 
      7 # 字符串:一个有序的、不可变的集合
      8 # 列表:本质:一个有序的、可变的集合
      9 
     10 # 数组 -- 列表
     11 
     12 # 一、创建列表
     13 # 语法格式:列表变量名称 = [元素1, 元素2, ......元素n]
     14 # 元素之间用 ,(逗号)隔开
     15 # 列表中的元素可以存在重复的数据
     16 
     17 # 1、创建一个空列表
     18 list1 = []
     19 print(list1)
     20 print(type(list1)) # list
     21 # 2、创建一个有5个元素的列表
     22 list2 = [1,2,3,4,6]
     23 print(list2)
     24 print(type(list2)) # list
     25 
     26 # 3、列表中的元素类型可以为任意类型的数据
     27 list3 = ["a", 'b', 1, 1.2, True, None]
     28 print(list3)
     29 
     30 # 4、列表的中的元素可以是列表类型数据
     31 list4 = [1, 2, 3, [66,77,88], [99,77,44], "a"]
     32 print(list4)
     33 
     34 
     35 # 二、列表元素的访问
     36 list5 = [1,2,3,4,5,6,7,"a"] # 8个元素
     37 # 1、取值:格式:列表名称[下标]
     38 # 下标从0开始
     39 # 下标不能越界,越界报错 最后一个元素的下标值为:列表长度-1 (len(list) -1)
     40 print(list5[3])
     41 # print(list5[16]) # IndexError:list index out of range 下标越界
     42 
     43 # 2、取值:从右向左取
     44 # 下标为 -1 时获取最后一个元素
     45 print(list5[-1])
     46 # print(list5[-9]) # IndexError: list index out of range
     47 
     48 # 3、替换元素
     49 # 语法格式: 列表名称[index] = 新值
     50 list5[1] = 200
     51 print(list5)
     52 
     53 
     54 # 三、列表的操作
     55 # 1、列表组合 +
     56 list6 = [1,2,3]
     57 list7 = [1,2,5,6]
     58 list8 = list6 + list7
     59 print(list8)
     60 
     61 # 2、列表的重复 *
     62 list9 = [1]
     63 print(list9 * 10)
     64 print(list9)
     65 
     66 # 3、判断某个元素是否在列表中
     67 # in not in
     68 list10 = [111, 222, 333]
     69 print(111 in list10) # True
     70 print(555 in list10) # False
     71 
     72 
     73 # 4、列表的截取
     74 # 语法格式:列表名称[[起始下标]:[结束下标] [:[递增基数]]]
     75 list11 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     76 # 4.1、从0开始截取,截取到数字6
     77 list12 = list11[:7]
     78 # 4.2、从数字3开始截取,截取末尾
     79 list13 = list11[3:]
     80 # 4.3、截取所有
     81 list14 = list11[:]
     82 # 4.4、从数字3开始截取,截取到数字6
     83 list15 = list11[3:7]
     84 # 4.5、列表逆序
     85 list16 = list11[::-1]
     86 # 4.6、隔一取一
     87 list17 = list11[::2]
     88 print(list12, list13, list14, list15, list16, list17)
     89 
     90 print(list11)
     91 print(list14)
     92 print(id(list11))
     93 print(id(list14))
     94 str1 = "abc"
     95 str2 = str1[:]
     96 print(id(str1))
     97 print(id(str2))
     98 
     99 print(id(list11)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    100 list11[0] = "a"
    101 print(id(list11))
    102 
    103 
    104 # 四、数据的操作 -- 增改查删
    105 # 1、增 -- 增加数据
    106 list18 = [1,2,3,4]
    107 print(list18)
    108 # 1.1、list.append(obj) 在列表后面添加一个新的元素,obj可
    109 # 以是任意类型的数据
    110 list18.append(5)
    111 print(list18)
    112 list18.append("abc") # [1,2,3,4,5,"abc"]
    113 print(list18)
    114 list18.append(True) # [1,2,3,4,5,"abc", True]
    115 print(list18)
    116 list18.append([2,3,4]) # [1,2,3,4,5,"abc", True, [2,3,4]]
    117 print(list18)
    118 
    119 # 1.2、list.extend(iter) 在列表后面添加新的元素,将iter中的元素分
    120 # 开添加。 注:iter必须是集合类型的元素
    121 print("-----------------------------------------")
    122 list19 = [1,2,3]
    123 print(list19)
    124 list19.extend("abcd") # [1, 2, 3, 'a', 'b', 'c', 'd']
    125 print(list19)
    126 list19.extend([100,200])
    127 print(list19) # [1, 2, 3, 'a', 'b', 'c', 'd', 100, 200]
    128 # list19.extend(100) # TypeError: 'int' object is not iterable
    129 # print(list19)
    130 
    131 # 1.3、list.insert(index, obj) : 在指定的index位置上添加新的obj元素
    132 # 不会覆盖该位置原来的元素,原数据在index上的及之后的元素下标依
    133 # 次向后顺移一位
    134 list20 = [1,2,3,4]
    135 list20.insert(2, 500)
    136 print(list20) # [1, 2, 500, 3, 4]
    137 list20.insert(3, "abc")
    138 print(list20) # [1, 2, 500, "abc", 3, 4]
    139 list20.insert(5, [100,200])
    140 print(list20) # [1, 2, 500, 'abc', 3, [100, 200], 4]
    141 list20.insert(10, "def")
    142 # 如果新增数据的下标越界,会在列表后面添加新的元素
    143 print(list20)
    144 
    145 # 2、改 -- 更改数据 更新数据
    146 # 语法格式: 列表名称[index] = 新值
    147 list5 = [1,2,3,4]
    148 list5[1] = 200
    149 print(list5)
    150 
    151 # 3、删 -- 删除数据
    152 # 3.1、list.pop([index]): 移除指定index位置的元素,当不指定index的值时,
    153 # 默认删除最后一个元素
    154 list1 = [0,1,20000,3,4,5,6,7]
    155 list1.pop()
    156 print(list1)
    157 list1.pop(2)
    158 print(list1)
    159 
    160 # 3.2、list.clear() 清空列表中的元素
    161 list2 = [1,2,3,4]
    162 list2.clear()
    163 print(list2)
    164 
    165 # 3.3、list.remove(item) 移除列表中匹配到的第一个item这个元素
    166 list3 = [1,2,3,4,5,3,4,5,3,4,5]
    167 list3.remove(2)
    168 print(list3)
    169 list3.remove(3)
    170 print(list3)
    171 
    172 
    173 # 4、查 --- 查询元素
    174 # 1、列表中是否存在某一个元素 in not in
    175 # 2、列表中是否存在某一个元素 index
    176 # list.index(obj [,start, end]) 如果存在,返回第一次匹配到的下标,
    177 # 如果不存在,返回错误ValueError
    178 list4 = [1,2,3,4,2,3,4]
    179 print(list4.index(1))
    180 print(list4.index(2))
    181 # print(list4.index(7)) # ValueError: 7 is not in list
    182 print(list4.index(2, 2, 5))
    183 
    184 
    185 # 五、列表其他操作
    186 list5 = [2,3,4,1,5,6,9,7]
    187 # 1、len(list) 获取列表长度
    188 print(len(list5)) # 8
    189 # 2、max(list) 返回列表中最大的元素
    190 print(max(list5)) # 9
    191 # 3、min(list) 返回列表中最小的元素
    192 print(min(list5)) # 1
    193 
    194 # 4、list.reverse() 列表反转 改变原来的列表
    195 list6 = [1,2,3,4]
    196 print(list6)
    197 list6.reverse()
    198 print(list6)
    199 # list6[::-1] 返回一个新的列表,不会改变原来的列表
    200 
    201 # 5、list.count(obj) 返回元素obj在列表中的个数
    202 list7 = [1,2,3,3,3,3,3,3,5]
    203 print(list7.count(3)) # 6
    204 
    205 # 6、list.sort([reverse=]) 列表排序,默认正序
    206 # reverse默认为False,正序;如果为True,倒序
    207 list8 = [7,3,1,5,2,4,6]
    208 # list8.sort()
    209 list8.sort(reverse=True)
    210 print(list8)
    211 
    212 # 7、拷贝
    213 # 7.1、浅拷贝 : 表面上增加了一个变量名称,但内存地址使用被拷贝的地址
    214 print('---------------------------------')
    215 list100 = [1,2,3,4,5]
    216 listCopy = list100
    217 print(list100) # [1,2,3,4,5]
    218 print(listCopy) # [1,2,3,4,5]
    219 print(id(listCopy))
    220 print(id(list100))
    221 list100[0] = 100
    222 print(list100) # [100,2,3,4,5]
    223 print(listCopy) # [100,2,3,4,5]
    224 
    225 # 7.2、深拷贝 -- 返回一个新的列表,内存地址与原来的列表不一致
    226 print('***************************************')
    227 list200 = [1,2,3,4,5,6]
    228 listNew = list200.copy()
    229 print(list200) # [1,2,3,4,5,6]
    230 print(listNew) # [1,2,3,4,5,6]
    231 print(id(list200))
    232 print(id(listNew))
    233 
    234 list200[0] = 10000
    235 listNew[2] = 222
    236 print(list200) # [10000,2,3,4,5,6]
    237 print(listNew) # [1,2,222,4,5,6]
    238 
    239 print('********************************')
    240 list1 = [1,2,[4,5,6]]
    241 list2 = list1.copy()
    242 print(id(list1))
    243 print(id(list2))
    244 
    245 print(id(list1[2]))
    246 print(id(list2[2]))
    247 print(list1)
    248 print(list2)
    249 
    250 list1[2][0] = 100
    251 list1[0] = 200
    252 print(list1)
    253 print(list2)
    254 
    255 # 拷贝的模块
    256 import copy
    257 a = [1,2,[5,6]]
    258 b = copy.copy(a)
    259 print('------------------------------')
    260 print(id(a))
    261 print(id(b))
    262 
    263 print(id(a[2]))
    264 print(id(b[2]))
    265 
    266 # 真正的深拷贝
    267 print("============================")
    268 c = copy.deepcopy(a)
    269 print(id(a))
    270 print(id(c))
    271 print(id(a[2]))
    272 print(id(c[2]))
    273 
    274 
    275 # 六、二维列表
    276 list12 = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
    277 print(list12)
    278 print(list12[1]) # [4, 5, 6]
    279 print(list12[1][1])
    280 
    281 
    282 # 七、遍历列表
    283 list2 = [2,3,4]
    284 # item : 元素
    285 for item in list2:
    286 print(item)
    287 
    288 i = 0
    289 while i < len(list2):
    290 print(list2[i])
    291 i += 1
    292 
    293 for i in range(len(list2)):
    294 print(list2[i])
    295 
    296 # 将列表中重复的元素删除
    297 list1 = [1,2,3,1,2,3,4,5,1,2,3]
    298 # [1,2,3,4,5]
    299 s1 = set(list1)
    300 list2 = list(s1)
    301 print(list2)
    302 
    303 
    304 # 遍历二维
    305 list12 = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
    306 for item in list12:
    307 print(item)
    308 for j in item:
    309 print(j)
    310 
    311 for i in range(len(list12)):
    312 print(list12[i])
    313 for j in range(len(list12[i])):
    314 print(list12[i][j])
    315 
    316  
  • 相关阅读:
    java 23种设计模式 深入理解
    ORACLE 一条记录 某字段值以';'拆分为多条记录
    rabbitmq集群故障恢复
    ORACLE 时间加减操作
    Asp.net MVC Razor输出字符串方法(js中嵌入razor)
    C# ToString() 数据格式
    DOM的整个知识体系
    EF 连接模式
    EF Code First 数据库连接方式
    使用border实现提示框的
  • 原文地址:https://www.cnblogs.com/BKY88888888/p/11252502.html
Copyright © 2011-2022 走看看