Python3基础知识之数据结构List和Tuple
问题:今天学习python数据结构中的List和Tuple。
目标:了解二者的区别,学会一般的应用
相关知识:
列表(List) : 类似于 .NET ArrayList / List。
元组(Tuple) : 列表的只读版。
1、二者之间转换:list() / tuple() 函数实现列表和元组之间进行转换。
>>>>>> a = ['a', 'b', 'c']
>>>>>> a
['a', 'b', 'c']
>>>>>> b = tuple(a)
>>>>>> b
('a', 'b', 'c')
>>>>>> c = list(b)
>>>>>> c
['a', 'b', 'c']
2、二者可以接收字符串参数
url_l = list("xwy2.com")
print(url_l)
['x', 'w', 'y', '2', '.', 'c', 'o', 'm']
url_t = tuple("xwy2.com")
print(url_t)
('x', 'w', 'y', '2', '.', 'c', 'o', 'm')
3、运算符操作
>>>>>> [1, 2] * 2
[1, 2, 1, 2]
>>>>>> [1, 2] + [3, 4]
[1, 2, 3, 4]
4、in/not in 操作
可以使用 in / not in 来判断是否包含某个元素。
>>>>>> a = [1, 2, 3]
>>>>>> 1 in a
True
>>>>>> 4 in a
False
>>>>>> b = (1, 2, 3)
>>>>>> 2 in b
True
5、range()的操作
可以使用 range() 函数获得一个整数列表,甚至进行运算和添加过滤条件。
range(start, stop[, step])
>>>>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>>>> range(2, 10, 2)
[2, 4, 6, 8]
>>>>>> range(2, 7)
[2, 3, 4, 5, 6]
>>>>>> [x*2 for x in range(10)]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
>>>>>> [x for x in range(10) if x%2>0]
[1, 3, 5, 7, 9]
>>>>>> [x + 1 for x in range(10) if x%2==0]
[1, 3, 5, 7, 9]
6、Slices
和字符串一样,可以通过序号或切片进行访问。
>>>>>> b = (1,2,3)
>>>>>> b[-1]
3
>>>>>> b[1:-1]
(2,)
>>>>>> b[1]
2
>>>>>> b[1:]
(2, 3)
>>>>>> b[-1]
3
>>>>>> b = [1,2,3]
>>>>>> b[1] = 100
>>>>>> b
[1, 100, 3]
7、filter()过滤
可以使用filter() 进行过滤。
>>>>>> a = range(10)
>>>>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>>>> def divfilter(i):
return i%2 == 0
>>>>>> filter(divfilter, a)
[0, 2, 4, 6, 8]
简写:
>>>>>> filter(lambda i: i%2==0, range(10))
[0, 2, 4, 6, 8]
当 function 参数(第一个参数)为 None 时,可以用来过滤掉空值。
>>>>>> b = ['a', '', [], [1,2]]
>>>>>> filter(None,b)
['a', [1, 2]]
map() 类似 .NET 中的 Array.Foreach()
>>>>>> map(lambda i:i*2, range(10))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
可以使用 reduce() 对元素进行统计。
>>>>>> import operator
>>>>>> reduce(operator.add, range(10))
45
>>>>>> reduce(operator.sub, [100, 5, 7])
88
zip() 方法可以对两个或多个列表/元组进行交叉合并
>>>>>> zip(range(2,10), ('a', 'b', 'c', 'd', 'e'))
[(2, 'a'), (3, 'b'), (4, 'c'), (5, 'd'), (6, 'e')]
8、其它操作
>>>>>> a = ['a','b','c']
>>>>>> a.index('b')
1
>>>>>> a += ['d']
>>>>>> a
['a', 'b', 'c', 'd']
>>>>>> a += ['b']
>>>>>> a
['a', 'b', 'c', 'd', 'b']
>>>>>> a.count('b')
2
>>>>>> a.insert(1, 's')
>>>>>> a
['a', 's', 'b', 'c', 'd', 'b']
>>>>>> a.remove('s')
>>>>>> a
['a', 'b', 'c', 'd', 'b']
>>>>>> a.pop(2)
'c'
>>>>>> a
['a', 'b', 'd', 'b']
>>>>>> a.reverse()
>>>>>> a
['b', 'd', 'b', 'a']
>>>>>> a.sort()
>>>>>> a
['a', 'b', 'b', 'd']
>>>>>> a.extend(['e','f'])
>>>>>> a
['a', 'b', 'b', 'd', 'e', 'f']
>>>>>> a.append('m', 'n')
Traceback (most recent call last):
File "<pyshell#72>", line 6, in <module>
a.append('m', 'n')
TypeError: append() takes exactly one argument (2 given)
>>>>>> a.append(['m','n'])
>>>>>> a
['a', 'b', 'b', 'd', 'e', 'f', ['m', 'n']]
Python3基础知识之数据结构List和Tuple的更多相关文章
- 学习Python3基础知识过程中总结
print()中end==""的用法 例子:用Python3输出九九乘法表: for i in range(1,10): for j in range(1,i+1): s=i*j ...
- 深入理解python(二)python基础知识之数据结构
数据结构 Python中的内置数据结构(Built-in Data Structure):列表list.元组tuple.字典dict.集合set,这里只着重说前三个 >>> d=di ...
- Python3基础知识
1.查看关键字 Python3查看关键字要先导入模块keyword,然后运用keyword的属性kwlist获取 >>> import keyword>>> key ...
- Python3基础知识之日期时间与字符的转换
问题:“猿类”们都知道,编程中都会涉及到日期.时间类型与字符串类型的转换.不同场景,需要将字符串格式转换为日期类型:也需要将日期类型转换为字符串格式. 目标: 学习和积累python中time和dat ...
- Python3基础知识之元组、集合、字典
1.元组 元组特点元组是不可变的两个元组可以做加法,不能做减法 元组的方法 >>> S('a', 'b', 'c', 'd', 'e')>>> S=('a','b' ...
- python3基础知识梳理
一.数据类型 1.数字 int(整型) long(长整型) float(浮点型) complex(复数) 2.布尔值 True或False 3.字符串 二.变量 变量命名规则: 变量名只能是 字母 ...
- JAVA核心技术I---JAVA基础知识(数据结构基础)
一:数组 (一)基本内容是与C一致的 (二)数组定义和初始化 (1)声明 int a[]; //a没有new操作,没有被分配内存,为null int[] b; //b没有new操作,没有被分配内存,为 ...
- Python3基础知识之运算符
题:今天学习python运算符,学完了回头看看与.net和java有什么异同. 目标:学习了解运算符,学会一般的应用. 相关知识: Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算 ...
- Python3 - 基础知识、基本了解
一.Python到底是什么? (抄自 金角大王) 1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去, ...
随机推荐
- alertjs Documentation
原文地址:https://github.com/PaulNieuwelaar/alertjs/wiki/Documentation#alertshow For version 3.0 document ...
- C常量与控制语句
在C语言中定义常量的两种方式 在C语言编程中定义常量有两种方法. const关键字 #define预处理器 1. const关键字 const关键字用于定义C语言编程中的常量. const float ...
- (Android第一行代码实验一)活动的最佳实践
活动的最佳实践 1.知晓当前是在哪一个活动 这个技巧将教会你,如何根据程序当前的界面就能判断出这是哪一个活动. 首先需要新建一个 BaseActivity 继承自 Activi ...
- Python—requests模块详解
1.模块说明 requests是使用Apache2 licensed 许可证的HTTP库. 用python编写. 比urllib2模块更简洁. Request支持HTTP连接保持和连接池,支持使用co ...
- element-ui input输入框回车事件
<el-input maxlength="30" v-model="answerInput" @keyup.enter.native="addA ...
- python-web自动化-三种等待方式
当有元素定位不到时,比如下拉框,弹出框等各种定位不到时:一般是两种问题:1 .有frame :2.没有加等待 下面学习三种等待方式: 1.强制等待 sleep(xx)这种方法简单粗暴,不管浏览器是否加 ...
- [java,2017-05-16] java中清空StringBuffer的方法以及耗费时间比较
java中清空StringBuffer的方法,我能想到的有4种: 1. buffer.setLength(0); 设置长度为0 2. buffer.delete(0, buffer.length() ...
- Android倒计时实现
Android为我们封装好了一个抽象类CountDownTimer,可以实现计时器功能: /** * 倒数计时器 */ private CountDownTimer timer = new Count ...
- PyQt--QTreeWidget
转载:loster_Li QTreeWidget的继承关系如下图: 因为继承关系是 QAbstractItemView->QTreeView->QTreeWidget ,所以和QTabl ...
- 用java语言构建一个网络服务器,实现客户端和服务器之间通信,实现客户端拥有独立线程,互不干扰
服务器: 1.与客户端的交流手段多是I/O流的方式 2.对接的方式是Socket套接字,套接字通过IP地址和端口号来建立连接 3.(曾经十分影响理解的点)服务器发出的输出流的所有信息都会成为客户端的输 ...