#   列表概念:有序的可变的元素集合

#   定义
# 直接定义
nums = [1,2,3,4,5] # 通过range函数构造,python2 和python3 版本之间的差异;
# python3 用的时候才会去构造
nums = range(1,101) # 列表嵌套
# 注意和C语言中数组的区别,是否可以存放不同的数据类型
nums = [1,2,"ab","",True,["a","b","c"]] # 列表赋值给另外一个列表
# 原始的方式
nums = [1,2,3,4,5]
resultList = []
for num in nums:
resultList.append(num ** 2)
print(resultList) # [1, 4, 9, 16, 25] # 列表推导式
nums = [1,2,3,4,5]
# [表达式 for 变量 in 列表]
resultList = [num ** 2 for num in nums]
print(resultList) # [1, 4, 9, 16, 25] # [表达式 for 变量 in 列表 if 条件]
resultList = [num ** 2 for num in nums if num % 2 != 0]
print(resultList) # [1, 9, 25] # 列表的增,删,改,插 #-------------------------------------增------------------------------------#
# append
# 作用
# 往列表中, 追加一个新的元素
# 在列表的最后
# 语法
# l.append(object)
# 参数
# object
# 想要添加的元素
# 返回值
# None
# 注意
# 会直接修改原数组
nums = [1, 2, 3, 4]
nums.append(5) # 无返回值 none
print(nums) # [1, 2, 3, 4, 5] # insert
# 作用
# 往列表中, 追加一个新的元素
# 在指定索引前面
# 语法
# l.insert(index, object)
# 参数
# index
# 索引, 到时会插入到这个索引之前
# object
# 想要添加的元素
# 返回值
# None
# 注意
# 会直接修改原数组
nums = [1, 2, 3, 4]
nums.insert(2, 5)
print(nums) # [1, 2, 5, 3, 4]
# extend
# 作用
# 往列表中, 扩展另外一个可迭代序列
# 语法
# l.extend(iterable)
# 参数
# iterable
# 可迭代集合
# 字符串
# 列表
# 元组
# ...
# 返回值
# None
# 注意
# 会直接修改原数组
# 和append之间的区别
# extend可以算是两个集合的拼接
# append是把一个元素, 追加到一个集合中
nums = [1, 2, 3, 4]
nums2 = ["a", "b", "c"]
nums.extend(nums2)
print(nums) # [1, 2, 3, 4, 'a', 'b', 'c'] # 乘法运算
# ["a"] * 3
# =
# ['a', 'a', 'a']
nums = [1, 2]
print(nums * 2) # [1, 2, 1, 2] # 加法运算
# ["a"] + ["b", "c"]
# =
# ["a", "b", "c"]
# 和extend区别
# 只能列表类型和列表类型相加 n1 = [1, 2]
n2 = ["a", "b"]
n3 = ["abc", "cdf"]
print(n1 + n2); #[1, 2, 'a', 'b']
print(n1 + n3); #[1, 2, 'abc', 'cdf'] # ------------------------------------------删------------------------------#
# del 语句
# 作用
# 可以删除一个指定元素(对象)
# 语法
# del 指定元素
# 注意
# 可以删除整个列表
# 删除一个变量
# 也可以删除某个元素
nums = [1, 2, 3, 4]
del nums[1]
print(nums) # [1, 3, 4] #del nums #这样也行
#print(nums)#程序会报错 # pop
# 作用
# 移除并返回列表中指定索引对应元素
# 语法
# l.pop(index=-1)
# 参数
# index
# 需要被删除返回的元素索引
# 默认是-1
# 也就对应着列表最后一个元素
# 返回值
# 被删除的元素
# 注意
# 会直接修改原数组
# 注意索引越界
nums = [1, 2, 3, 4]
nums.pop() #默认-1
print(nums) # remove
# 作用
# 移除列表中指定元素
# 语法
# l.remove(object)
# 参数
# object
# 需要被删除的元素
# 返回值
# None
# 注意
# 会直接修改原数组
# 如果元素不存在
# 会报错
# 若果存在多个元素
# 则只会删除最左边一个
# 注意循环内删除列表元素带来的坑 nums = [1, 2, 2, 3, 4]
nums.remove(2) #则只会删除最左边一个
print(nums) #[1, 2, 3, 4] # ---------------------------------------------改----------------------------------------#
# names[index] = 666 nums = [1, 2, 3]
nums[1] = 5
print(nums) #[1, 5, 3] #--------------------------------------------- 查----------------------------------------#
# 获取单个元素
# items[index]
# 注意负索引
nums = [1, 2, 3]
print(nums[-1]) # # 获取元素索引
# index()
nums = [1, 2, 5, 3, 4]
print(nums.index(5)) # # 获取指定元素个数
# count()
nums = [1, 2, 5, 2, 3, 4]
print(nums.count(2) ) # # 获取多个元素
# 切片
# items[start:end:step]
# 遍历
# 方式1
# 根据元素进行遍历
# for item in list:
# print(item)
# 方式2
# 根据索引进行遍历
# for index in range(len(list)):
# print(index, list[index])
# 方式3(了解)
# 创建对应的枚举对象
# 概念
# 通过枚举函数, 生成的一个新的对象
# 作用
# 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列
# 同时列出数据下标和数据
# 语法
# enumerate(sequence, [start=0])
# sequence -- 一个序列、迭代器或其他支持迭代对象。
# start -- 下标起始位置。
# 举例
# l = ["a", "b", "c"]
# enumerate(l, 1)
# 一个待枚举的对象
# 转换成为list之后, 具体数据如下
# [(1, 'a'), (2, 'b'), (3, 'c')]
# 遍历枚举对象
# for index, value in 枚举对象:
# print(index, value)
# 方式4(了解)
# 使用迭代器进行遍历
# iterL = iter(list)
# for item in iterL:
# print(item) # 访问集合的方式-迭代器
# 概念
# 迭代
# 是访问集合元素的一种方式
# 按照某种顺序逐个访问集合中的每一项
# 可迭代对象
# 能够被迭代的对象, 称为可迭代对象
# 判定依据
# 能作用于for in
# 判定方法
# import collections
# isinstance(obj, collections.Iterable)
# 迭代器
# 是可以记录遍历位置的对象
# 从第一个元素开始, 往后通过next()函数, 进行遍历
# 只能往后, 不能往前
# 判定依据
# 能作用于next()函数
# 判定方法
# import collections
# isinstance(obj, collections.Iterator)
# 注意
# 迭代器也是可迭代对象, 所以也可以作用于for in
# 为什么会产生迭代器?
# 1. 仅仅在迭代到某个元素时才处理该元素
# 在此之前, 元素可以不存在
# 在此之后, 元素可以被销毁
# 特别适合用于遍历一些巨大的或是无限的集合
# 例如 "菲波那切数列"
# 2. 提供了一个统一的访问集合的接口
# 可以把所有的可迭代对象, 转换成迭代器进行使用
# iter(Iterable)
# iter(str)
# iter(list)
# iter(tuple)
# iter(dict)
# ...
# 迭代器简单使用
# 使用next()函数, 从迭代器中取出下一个对象, 从第1个元素开始
# 因为迭代器比较常用, 所以在Python中, 可以直接作用于for in
# 内部会自动调用迭代器对象的next()
# 会自动处理迭代完毕的错误
# 注意事项
# 如果取出完毕,再继续取, 则会报错
# StopIteration
# 迭代器一般不能多次迭代 import collections nums = [1, 2, 3]
result = isinstance(nums, collections.Iterable)
print(result) # True
result = isinstance(nums, collections.Iterator)
print(result) # Flase # 转为迭代器
it = iter(nums) for v in it:
print(v) # 判定
# 元素 in 列表
# 元素 not in 列表 # 比较
# cmp()
# 内建函数
# 如果比较的是列表, 则针对每个元素, 从左到右逐一比较
# 左 > 右
# 1
# 左 == 右
# 0
# 左 < 右
# -1
# Python3.x不支持
# 比较运算符
# ==
# >
# <
# ...
# 针对每个元素, 从左到右逐一比较 # 排序
# 方式1
# 内建函数
# 可以对所有可迭代对象进行排序
# 语法
# sorted(itrearble, key=None, reverse=False)
# 参数
# itrearble
# 可迭代对象
# key
# 排序关键字
# 值为一个函数,此函数只有一个参数且返回一个值用来进行比较
# reverse
# 控制升序降序
# 默认False
# 升序
# 返回值
# 一个已经排好序的列表
# 列表类型
s = "cdefga"
result = sorted(s);
print(result) #['a', 'c', 'd', 'e', 'f', 'g'] s = [2,3,1,4,5]
result = sorted(s, reverse = True)
print(result) #[5, 4, 3, 2, 1] s = [("a", 16), ("a1",13), ("a2", 14)]
result = sorted(s)
print(result) #[('a', 16), ('a1', 13), ('a2', 14)] #按元组的第一个元素来排序
def getKey(x):
return x[1]
result = sorted(s, key=getKey)
print(result) #[('a1', 13), ('a2', 14), ('a', 16)] # 方式2
# 列表对象方法
# 语法
# list.sort(key=None, reverse=False)
# 参数
# key
# 排序关键字
# 值为一个函数,此函数只有一个参数且返回一个值用来进行比较
# reverse
# 控制升序降序
# 默认False
# 升序 s = [2,3,1,4,5]
res = s.sort()
print(res, s) # None [1, 2, 3, 4, 5] 注意和内建函数的方法不同点; # 乱序
# 可以随机打乱一个列表
# 导入random模块
# import random
# random.shuffle(list) import random
list = [1, 2, 3, 4, 5]
res = random.shuffle(list)
print(res, list) #None [4, 3, 5, 2, 1] 后面序列随机,修改原序列的本身 # 反转
# l.reverse()
list = [1, 2, 3, 4, 5]
res = list.reverse()
print(res, list) #None [5, 4, 3, 2, 1] # 切片反转
# l[::-1]
list = [1, 2, 3, 4, 5]
res = list[::-1]
print(res, list) #[5, 4, 3, 2, 1] [1, 2, 3, 4, 5]

Python 列表List的定义及操作的更多相关文章

  1. Python列表,元组,字典,集合详细操作

    菜鸟学Python第五天 数据类型常用操作及内置方法 列表(list) ======================================基本使用====================== ...

  2. Python 列表的11个重要操作

    列表是python中内置的数据结构,它的表现形式为方括号中不同数据的集合,用逗号分隔开.列表可以用来存储相同数据类型或不同数据类型. 列表是可变的,这也是它如此常用的原因,然而在某些情况下,可变性需要 ...

  3. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  4. Python列表,字典和字符串操作

    列表: 列表:list, 也叫数组,表现[].特点:有角标,元素可以重复,有序的元素 例子:stus = ['王志华','乔美玲','乔美玲','王文文','feixiang']#中括号,这就是一个l ...

  5. python—day9 函数的定义、操作使用方法、函数的分类、函数的嵌套调用

    一.函数的定义 函数的四个组成部分: 函数名. 函数体. 函数返回值. 函数参数 1.概念:重复利用的工具,可以完成特定功能的代码块,函数是存放代码块的容器 2.定义: def:声明函数的关键词 函数 ...

  6. python列表和元组的常用操作

    一.列表 需要安利一下:列表和字符串数是不一样的.进行操作时列表可以发生改变,而字符串不可以,所以直接在原来的对象上操作. 1.列表的增加 def append(self, p_object): # ...

  7. Python 列表切片陷阱:引用、复制与深复制

    Python 列表的切片和赋值操作很基础,之前也遇到过一些坑,以为自己很懂了.但今天刷 Codewars 时发现了一个更大的坑,故在此记录. Python 列表赋值:复制"值"还是 ...

  8. python列表底层实现原理

    Python 列表的数据结构是怎么样的? 书上说的是:列表实现可以是数组和链表.顺序表是怎么回事?顺序表一般是数组. 列表是一个线性的集合,它允许用户在任何位置插入.删除.访问和替换元素.列表实现是基 ...

  9. python 列表与元组的操作简介

    上一篇:Python 序列通用操作介绍 列表 列表是可变的(mutable)--可以改变列表的内容,这不同于字符串和元组,字符串和元组都是不可变的.接下来讨论一下列表所提供的方法. list函数 可以 ...

随机推荐

  1. 使用.NET Reflector 查看Unity引擎里面的DLL文件

    转载标注来源哦! 原地址在这里!在这里. 当你查看unity里面API的时候.是不是有时候追踪了一两步就碰到DLL文件走不下去了呢?非常是不爽吧. 这样的问题我也是常常碰到.这是人家商业引擎不想让你看 ...

  2. python3----基础函数的参数是可变参数,将传进来的参数转成列表

    def myFun(*argments): values = [x for x in argments] print(values) myFun(1,2,3,4,5,6) result: [1, 2, ...

  3. windows下sshfs挂载远程文件夹-server could not connect故障解决

    使用sshfs挂载server上面的文件夹到windows中.轻松方便. 在之前的系统上挂载.没出问题. 近期买了块固态硬盘.装了个系统. 结果在系统上执行sshfs时报例如以下错误: 事实上非常ea ...

  4. tomcat添加crt证书

    使用keytool生成证书苹果手机添加后提示未验证,可以使用Apache的openssl生成证书导入到tomcat中. 使用Apache 生成证书:openssl genrsa 4096 > s ...

  5. 关于 JavaScript 学习 —— 好的博客或者网站推荐

    作者:Tw93链接:https://www.zhihu.com/question/19651401/answer/46211739来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  6. Ninject学习笔记<四>

    前言 前段时间看Mvc最佳实践时,认识了一个轻量级的IOC框架:Ninject.通过google搜索发现它是一个开源项目,最新源代码地址是:http://github.com/enkari/ninje ...

  7. linux下不错的小软件

    1.Shutter截图软件 可以完成基本截图功能,而且还有图片编辑功能,可以涂鸦添加水印等. 以下的截图全部归功于shutter软件. 2.VLC media player 媒体播放器 3.Termi ...

  8. Sql注入基础_access注入

    1.access注入攻击片段-联合查询 2.access注入攻击片段-逐字猜解法 3.Access偏移注入(表名和列名猜解成功率不是百分百,猜解不到) access注入攻击片段-联合查询法 判断注入 ...

  9. JLable设置复制粘贴

    final JLabel keyLable = new JLabel(key); keyLable.addMouseListener(new MouseAdapter() { @Override pu ...

  10. Python判断网络是否可以访问

    import urllib url = "http://www.baidu.com" try: status = urllib.urlopen(url).code print st ...