#-----------------------------------------创建列表------------------------------------------
# 定义
# 直接定义
nums = [1,2,3,4,5]

# 通过range函数构造,python2 和python3 版本之间的差异;
# python3 用的时候才会去构造
nums = range(1,101)

# 列表嵌套
# 注意和C语言中数组的区别,是否可以存放不同的数据类型
nums = [1,2,"ab","1",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]

#使用list()方法创建列表
list_1 = list([1,2,3])
print list_1

# 列表推导式
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[:] #删除列表中全部元素,即清空了列表
nums = [] #可以清空列表,但不能作为函数参数执行

# pop
# 作用
# 移除并返回列表中指定索引对应元素
# 语法
# l.pop(index=-1)
# 参数
# index
# 需要被删除返回的元素索引
# 默认是-1
# 也就对应着列表最后一个元素
# 返回值
# 被删除的元素
# 注意
# 会直接修改原数组
# 注意索引越界
nums = [1, 2, 3, 4]
nums.pop() #默认-1,并返回删除的元素
nums.pop(0) #删除指定位置的元素,并返回删除的元素

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]) # 3

# 获取元素索引
# index()
nums = [1, 2, 5, 3, 4]
print(nums.index(5)) # 2

# 获取指定元素个数
# count()
nums = [1, 2, 5, 2, 3, 4]
print(nums.count(2) ) #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 -- 下标起始位置。
#
#如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:
list1 = ["这", "是", "一个", "测试"]
for i in range (len(list1)):
print i ,list1[i]

#上述方法有些累赘,利用enumerate()会更加直接和优美:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
print index, item
>>>
0 这
1 是
2 一个
3 测试

#•enumerate还可以接收第二个参数,用于指定索引起始值
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1):
print index, item
>>>
1 这
2 是
3 一个
4 测试

# 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]

#list去重

list_1 = ['s','a','d','s','a','d']
list_2 = []

for i in list_1:
if i not in list_2:
list_2.append(i)
print list_2

转载于:https://www.cnblogs.com/lisonglin/p/10248063.html

python基础系列二:列表相关推荐

  1. python 基础系列(十二) — python正则

    python 基础系列(十二) - python正则 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独 ...

  2. python 基础系列(二) — Python基本语法

    python 基础系列(二) - Python基本语法 python基础系列索引 python 基础系列(一) - Python介绍 python 基础系列(二) - Python基本语法 pytho ...

  3. Python基础数据之列表知识(二)

    Python基础数据之列表知识(二) 一.列表的特点 二.列表的排序 三.列表的嵌套 1.嵌套的基本使用 2.嵌套的示例 四.列表的循环删除 五.列表相关知识链接 一.列表的特点 1.有序 2.独立 ...

  4. python基础数据类型之列表,元组(基础二)

    第四章 python基础数据类型之列表,元组(基础二) python常用数据类型之组合数据类型:列表,元组. 4.1 列表 list 列表介绍 列表是python的基础数据类型之⼀ ,其他编程语⾔言也 ...

  5. python 基础系列(十) — Windows CMD命令大全

    python 基础系列(十) - Windows CMD命令大全 python基础系列索引 python 基础系列(一) - Python介绍 python 基础系列(二) - Python基本语法 ...

  6. 【C++自我精讲】基础系列二 const

    [C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...

  7. Python基础数据之列表

    Python基础数据之列表 一.列表介绍 1.简介 2.列表的特性 二.列表初识 三.for循环中使用 四.列表长度表示 五.向列表中添加内容 1.向列表中追加内容 2.向列表中插入内容 3.批量添加 ...

  8. Python基础(二)--数据类型,运算符与流程控制

    目录 Python基础(二)--数据类型,运算符与流程控制 1 数据类型 1.1 Python中的数据类型 1.2 整数类型(int) 1.3 布尔类型 1.4 浮点类型 1.5 复数类型 1.6 类 ...

  9. Python基础学习之列表操作

    Python基础学习之列表操作 文章目录 Python基础学习之列表操作 1. 列表的增,删,改,查 1.1 列表的增加,常用的方法有:append, extent, incert 1.2 列表的删除 ...

  10. Python基础(二)完结

    今天分享又来了呀.ღ( ´・ᴗ・` ) 一起学习进步ღゝ◡╹)ノ♡ 关注公众号,回复"资料全集",不定期最新大数据业内资讯. ❤:在这里跟我一起学习技术.职场.人生.原理.健身.摄 ...

最新文章

  1. 如何从 900 万张图片中对 600 类照片进行分类? | 技术头条
  2. 智能经济的动力,从人工智能到超级智能
  3. 你了解 Performance Timeline Level 2 吗?
  4. Java 基础 之 三目运算
  5. LeetCode 16 3Sum Closest
  6. 【poj2187】 Beauty Contest
  7. spring解析配置文件(三)
  8. 五轴编程_沙井万丰数控数控编程五轴编程那个软件好用
  9. win10商店下载位置_Win10删应用商店下载记录|Win10删Microsoft Store下载记录
  10. vue ---- webpack中loader
  11. dom文档对象模型图
  12. 加载本地文件为String类型
  13. 浏览器分辨率使用排名以及不同分辨率下的网页测试
  14. 当贝显示服务器生病,【当贝市场】电视盒子卡顿的三大原因
  15. Excel 连接数据库的两种方式
  16. android 监测usb有线网卡的网线连接状态 详细一点的输出信息解析
  17. 基于图片的三维重建深度图与原图
  18. java连接云服务Hadoop伪分布式错误:Call From LAPTOP-14BPR3NI/192.168.1.2 to node1:9000 failed on connection
  19. 什么东西改善睡眠质量,辅助睡眠好物推荐
  20. QT串口助手(串口的查找和打开)

热门文章

  1. 2.3谨慎活跃问题(Beware of Liveness Problems)
  2. [渝粤教育] 广东-国家-开放大学 21秋期末考试管理学原理★10013k1
  3. 【渝粤教育】国家开放大学2018年春季 0688-22T老年精神障碍护理 参考试题
  4. 【渝粤题库】陕西师范大学800005 人文地理学
  5. 怎样的学术导师是好导师(Nature)
  6. Airbnb 面试题汇总
  7. iOS-----------关于UDID
  8. 【hiho一下 第147周】小Hi的烦恼
  9. 在eclipse下使用java调用weka
  10. STM32F407外部晶体改为25M后检测不到芯片的解决办法