老齐python-基础3(列表)
1、定义一个列表
>>> a = [] #创建一个空列表
>>> type(a) #查看数据类型
<class 'list'>
>>> bool(a) #判断非空
False
>>> print(a)
[]
>>> a = ['',3,'tajzhang',]
>>> a
['', 3, 'tajzhang']
>>> type(a)
<class 'list'>
>>> bool(a)
True
>>> print(a)
['', 3, 'tajzhang']
列表是个筐,什么都能装
>>> b = ["hello",a]
>>> b
['hello', ['', 3, 'tajzhang']]
2、索引和切片
与字符串方式相同
>>> a = ['','','python.org']
>>> a[0]
''
>>> a[2]
'python.org'
>>> a[:2]
['', '']
>>> a[1:]
['', 'python.org']
>>> a[2][7:13] #两次切片
'org'
>>> a.index('2') #索引
0
>>> a[-1]
'python.org'
>>> a[-3:-1] #从右向左截取
['2', '3']
>>> alst = [1,2,3,4,5,6]
>>> alst[:] #显示列表所有
[1, 2, 3, 4, 5, 6]
>>> alst[::2] #步长为2显示列表
[1, 3, 5]
>>> alst[::1]
[1, 2, 3, 4, 5, 6]
3、反转
编程中比较常用
>>> alst = [1,2,3,4,5,6]
>>> alst[::-1] #反转
[6, 5, 4, 3, 2, 1]
>>> alst
[1, 2, 3, 4, 5, 6]
>>> lang ='python'
>>> lang[::-1] #字符串同样支持反转
'nohtyp'
>>> alst[::-2]
[6, 4, 2]
>>> list(reversed(alst)) #反转函数
[6, 5, 4, 3, 2, 1]
>>> list(reversed("abcd"))
['d', 'c', 'b', 'a']
4、操作列表
4.1基本操作:与字符串操作方式基本相同
len
+
*
in
max()和min()
>>> lst = ['python','java','c++']
>>> len(lst)
3
>>> alst=[1,2,3,4,5,6]
>>> lst + alst
['python', 'java', 'c++', 1, 2, 3, 4, 5, 6]
>>> lst * 3
['python', 'java', 'c++', 'python', 'java', 'c++', 'python', 'java', 'c++']
>>> "python" in lst #是否存在
True
>>> "c#" in lst
False
>>> alst = [1,2,3,4,5,6]
>>> max(alst) #最大值
6
>>> min(alst) #最小值
1
>>> min(lst)
'c++'
4.2修改列表元素
>>> cities = ["nanjing","zhejiang"]
>>> cities[1] = "suzhou"
>>> cities
['nanjing', 'suzhou']
>>> cities.append("shanghai")
>>> cities
['nanjing', 'suzhou', 'shanghai']
>>> cities[len(cities):] = ["wuxi"]
>>> cities
['nanjing', 'suzhou', 'shanghai', 'wuxi']
5、列表常用函数
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
常用:append、count、extend、index、insert、pop、remove、reverse、sort
>>> la = [1,2,3]
>>> lb = ['tajzhang','python']
>>> la.extend(lb) #列表合并
>>> la
[1, 2, 3, 'tajzhang', 'python']
>>> lb
['tajzhang', 'python']
>>> b = "abx"
>>> la.extend(b) #将字符串加入列表
>>> la
[1, 2, 3, 'tajzhang', 'python', 'a', 'b', 'x'] >>> la = [1,2,3,'a','b','c']
>>> lb = ['qiwair','python']
>>> la[len(la):] = lb #不同实现方法
>>> la
[1, 2, 3, 'a', 'b', 'c', 'qiwair', 'python']
判断对象是否是可迭代的
>>> astr = "python"
>>> hasattr(astr,'__iter__')
True
>>> hasattr(3,'__iter__')
False
5.1 append()和extend()区别
>>> lst = [1,2,3]
>>> lst.append(["tajzhang","blog"])
>>> lst
[1, 2, 3, ['tajzhang', 'blog']]
>>> len(lst)
4
>>> lst2 = [1,2,3]
>>> lst2.extend(["tajzhang","blog"])
>>> lst2
[1, 2, 3, 'tajzhang', 'blog']
>>> len(lst2)
5
5.2 count 显示列表中元素重复出现次数的方法
>>> la = [1,2,1,1,3]
>>> la.count(1)
3
5.3 index 显示元素索引位置,元素不存在就报错
>>> la = [1,2,3,'a','b','c','tajzhang','python']
>>> la.index(3)
2
5.4 inster 任意位置追加元素
>>> all_user = ['tajzhang','python','blog']
>>> all_user.insert(0,'github')
>>> all_user
>>> a = [1,2,3]
>>> a.insert(9,666) #索引超过最大值则追加到最后
>>> a
[1, 2, 3, 666]
5.5 remove和pop
remove存在列表中即删除,不存在列表中报错,建议配合if判断使用
>>> all_user
['github', 'tajzhang', 'python', 'blog']
>>> if "python" in all_user:
all_users.remove("python")
print(all_user)
else:
print("'python' is not in all_users")
pop
>>> all_user
['github', 'tajzhang', 'python', 'blog']
>>> all_user.pop()
'blog'
>>> all_user
['github', 'tajzhang', 'python']
>>> all_user.pop(1)
'tajzhang'
>>> all_user
['github', 'python']
>>> all_user.pop(3) #超出索引报错
Traceback (most recent call last):
File "<pyshell#117>", line 1, in <module>
all_user.pop(3)
IndexError: pop index out of range
5.6 reverse 倒序
>>> a = [3,5,1,6]
>>> a.reverse()
>>> a
[6, 1, 5, 3]
>>> a = [1,2,3,4,5]
>>> b = reversed(a)
>>> b
<list_reverseiterator object at 0x1023aee48>
>>> list(b) #reverse不能实现反向迭代,可使用reversed实现
[5, 4, 3, 2, 1]
>>> a
[1, 2, 3, 4, 5]
>>> a.reverse()
5.7 sort sorted()
>>> a
[1, 2, 3, 4, 5]
>>> a.reverse()
>>> a = [6,1,5,3]
>>> a.sort()
>>> a
[1, 3, 5, 6]
>>> a.sort(reverse=True) #反向排序
>>> a
[6, 5, 3, 1]
>>> lst = ["python","java","c","pascal","basic"]
>>> lst.sort(key=len) #根据key 排序类似excel
>>> lst
['c', 'java', 'basic', 'python', 'pascal']
6、比较字符串和列表
6.1相同点
两者都属于序列类型,不管是组成列表的元素,还是组成字符串的字符,都可以从左向右,依次用0,1,2...(-1,-2,3...)这样的方式建立索引,都可以使用切片
6.2区别
最大区别,列表是可以随意修改的,字符串要重新赋值才可以
6.3多维列表
字符串中每个元祖只能是字符类型,列表中可以是任何类型的数据
7、列表和字符串转化
7.1 str.split()
7.2 "[sep]".join(list)
8、更pythonic的多值替换方法
lst2 = ["python",22,22,"python","linux","python","ubuntu"]
lst4 = ['python2' if x == 'pyhton' else x for x in lst2] #多值替换
print(lst4) lst3 = list(set(lst2))
print(lst3) lstcache1 = [22,'linux']
lst5 = ['c++' if x in lstcache1 else x for x in lst3] #去除相同元素,多元素替换同一个元素
print(lst5) lstcache2 = {'python':'pythonIC','c++':'c#'}
lst6 = [lstcache2[x] if x in lstcache2 else x for x in lst5] #根据字典映射关系替换
print(lst6)
老齐python-基础3(列表)的更多相关文章
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python基础之列表list元组tuple
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...
- python基础数据类型--列表(list)
python基础数据类型--列表(list) 列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增.删.改.查等操作 一列表的增.删.改.查 1增: 1.1增加到最后 append ...
- Day2 - Python基础2 列表、字典、集合
Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...
- python基础4 列表和元组
一. 列表列表:python基础数据类型之一:其他语言中也有列表的概念,js 数组,可索引,可切片,可加步长li = ['hello', 100, True, [1, 2, 3], {'name':' ...
- python基础之列表、字典、元祖等 (二)
一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...
- python基础之列表讲解
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 如下图所示,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可.(接下来的演 ...
- Python基础入门-列表解析式
今天我们使用Python中的列表解析式来实现一些简单功能.好了关于列表解析式是什么?我的理解是它可以根据已有列表,高效创建新列表的方式.列表解析是Python迭代机制的一种应用,它常用于实现创建新的列 ...
- Python基础_列表 list
列表是Python的一种基础数据类型,可以进行的操作包括索引,切片,加,乘,检查成员 列表定义: list(列表.数组) eg:stus=['lisi','jion','peter'] #下标:即角标 ...
- python基础类型—列表
列表 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = [‘alex’ ...
随机推荐
- 019——VUE中v-for与computer结合功能实例讲解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- c# 文件日志处理 需要log4net配置
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...
- About libcurl and cURL in PHP
今天在学习php时遇到要调用curl 库函数对特定url字符串进行访问操作,需要自己写一个方法进行调用,之前在linux系统中也有用到cURL 命令行工具执行对相关资源的获取,在wiki上找到了如下的 ...
- .net的.aspx页面调试方法
做.net网站开发,有时候需要调试和察看变量, 1.设置好断点以后, 2.设置调试:VS 菜单: 调试————〉附加到进程————〉在 “可用进程” 列表中选择 标题为 "ASP.NET D ...
- wma wmv asf格式分析
原文链接:http://blog.csdn.net/werocpp/article/details/5594067 原文链接:http://blog.chinaunix.net/uid-2075819 ...
- MySQL之联合索引
以 index(a, b, c) 为例: 语句 发挥作用的索引 记忆方法(以三块板子过河记忆, 顺序很重要) WHERE a=3 只用到了a列 只走了a板子 WHERE a=3 AND b=5 使用了 ...
- Windows下安装Web.py快速指南
环境介绍 首先介绍下安装使用的环境 - Windows 7 - Python 3.6 Web.py介绍 web.py是Python在Web领域一个轻量级的解决方案,所谓轻量,就是非常简单快速满足Web ...
- EasyPusher安卓直播推流到EasyDarwin开源流媒体服务器工程简析
EasyPusher主要有三部分组件组成:采集,编码,叠加,上传.在这个基础上同时支持本地存储\后台预览的功能.主要业务模块与相关类之间的关系如图所示: Created with Raphaël 2. ...
- 【剑指offer】输入一颗二叉树的根节点,判断是不是平衡二叉树,C++实现
原创博文,转载请注明出处! # 题目 # 举例 # 思路 由平衡二叉树的定义可知,判断二叉树是否是平衡二叉树的关键在于判断任意结点是否是平衡结点.后序遍历二叉树,判断节点的子树是否平衡并计算节点的子树 ...
- http_server实例代码
from socket import * def handleClient(connfd): print("-----") request = connfd.recv(4096) ...