python基础学习-集合数据类型
2017-08-17 13:45
405 查看
python语言本身提供除有基本数据类型外,还有相应的简单集合数据类型,常用的有列表,元组,集合,字典。当然也可以通过模块使用第三方的数据结构,比如说有矩阵,树,队列,堆栈,图等等。
其中列表是一种动态数据结构,在数据结构中体现为线性表或者链表。其中的动态这个词很重要,像元组和基本数据类型就是非动态的,因为在对待按值传递和按引用传递方面是如果是动态的就按引用传递,如果是非动态的就按值传递。当然,如果想动态也按值传递和话可以利用python的深copy特性。关于python的按值传递和按引用传递,在我的另一篇文章
集合操作
>>> s1 = {1,2,3}
>>> s2 = {2,3,4}
>>> #集合并集
>>> s1 | s2
set([1, 2, 3, 4])
>>> #集合交集
>>> s1 & s2
set([2, 3])
>>> #集合差集
>>> s1 - s2
set([1])
>>> #集合对称差集
>>> s1 ^ s2
set([1, 4])
>>> #集合添加
>>> s1.add(5)
>>> s1
set([1, 2, 3, 5])
>>> s1.update({6,7,8})
>>> s1
set([1, 2, 3, 5, 6, 7, 8])
>>> #集合移除
>>> s1.remove(1)
>>> s1
set([2, 3, 5, 6, 7, 8])
python中的字典其实就是其他语言中的表
>>> dic = {1:1,2:2,3:3}
>>> dic
{1: 1, 2: 2, 3: 3}
>>> dic[1]
1
>>> for (a,b) in dic.items():
print a,",",b
1 , 1
2 , 2
3 , 3
>>> dic[1] = 100
>>> dic
{1: 100, 2: 2, 3: 3}
>>> del dic[1]
>>> dic
{2: 2, 3: 3}
字典的基本操作比较简单
其中列表是一种动态数据结构,在数据结构中体现为线性表或者链表。其中的动态这个词很重要,像元组和基本数据类型就是非动态的,因为在对待按值传递和按引用传递方面是如果是动态的就按引用传递,如果是非动态的就按值传递。当然,如果想动态也按值传递和话可以利用python的深copy特性。关于python的按值传递和按引用传递,在我的另一篇文章
python基础学习-按值传递和按引用传递 中有相关的说明和解释,建议好好看看,这个真的超级重要。
python列表操作
Python 2.7.13 (default, Jan 19 2017, 14:48:08)
[GCC 6.3.0 20170118] on linux2
Type "copyright", "credits" or "license()" for more information.
>>> numbers = [1,2,3,4,5,"6",[5,4,3,2,1]]#创建一个列表,其中包含了5个int和一个字符串以及另一个列表
>>> numbers
[1, 2, 3, 4, 5, '6', [5, 4, 3, 2, 1]]
>>> numbers.append(7)
>>> #python的列表中的元素是可以为任意类型的,并且同一个列表中的元素可以是不同类型的
>>> #向列表的末尾添加一个元素
>>> numbers
[1, 2, 3, 4, 5, '6', [5, 4, 3, 2, 1], 7]
>>> numbers.insert(0,0)
>>> #在特定位置插入一个元素
>>> numbers
[0, 1, 2, 3, 4, 5, '6', [5, 4, 3, 2, 1], 7]
>>> numbers[7] = 8
>>> #修改某个位置上的元素
>>> numbers
[0, 1, 2, 3, 4, 5, '6', 8, 7]
>>> numbers.insert(0,0)
>>> numbers
[0, 0, 1, 2, 3, 4, 5, '6', 8, 7]
>>> numbers.remove(0)#移除第一个匹配的元素
>>> numbers
[0, 1, 2, 3, 4, 5, '6', 8, 7]
>>> nums0 = [1,2,3]
>>> nums1 = [4,5,6]
>>> #两个列表连接起来
>>> nums2 = num0+num1
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
nums2 = num0+num1
NameError: name 'num0' is not defined
>>> nums = nums0+nums1
>>> nums
[1, 2, 3, 4, 5, 6]
python的列表和for循环的高级应用
>>> nums = [1,2,3,4,5]
>>> def test(i):
return i+1
>>> anotherNums = [test(item) for item in nums]
>>> anotherNums
[2, 3, 4, 5, 6]
>>>
元组是个神奇的东西
两种创建元组的方式
>>> t = 1,2,3
>>> t
(1, 2, 3)
>>> t = (1,2,3)
>>> t
(1, 2, 3)
>>>
元组解包
>>> a,b,c = t
>>> a
1
>>> b
2
>>> c
3
>>> (a,b,c) = t
>>> a
1
>>> b
2
>>> c
3
>>> s1 = {1,2,3}
>>> s2 = {2,3,4}
>>> #集合并集
>>> s1 | s2
set([1, 2, 3, 4])
>>> #集合交集
>>> s1 & s2
set([2, 3])
>>> #集合差集
>>> s1 - s2
set([1])
>>> #集合对称差集
>>> s1 ^ s2
set([1, 4])
>>> #集合添加
>>> s1.add(5)
>>> s1
set([1, 2, 3, 5])
>>> s1.update({6,7,8})
>>> s1
set([1, 2, 3, 5, 6, 7, 8])
>>> #集合移除
>>> s1.remove(1)
>>> s1
set([2, 3, 5, 6, 7, 8])
python中的字典其实就是其他语言中的表
>>> dic = {1:1,2:2,3:3}
>>> dic
{1: 1, 2: 2, 3: 3}
>>> dic[1]
1
>>> for (a,b) in dic.items():
print a,",",b
1 , 1
2 , 2
3 , 3
>>> dic[1] = 100
>>> dic
{1: 100, 2: 2, 3: 3}
>>> del dic[1]
>>> dic
{2: 2, 3: 3}
字典的基本操作比较简单
相关文章推荐
- 王亟亟的Python学习之路(三)-基础语法以及基本数据类型
- Python学习笔记(一)--Python基础知识:变量、数据类型、模块与字符串
- python学习之基础数据类型
- Python新手学习基础之数据类型——数字类型
- 慕课网python基础学习教案(变量和数据类型)
- JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
- Python新手学习基础之数据类型——字符串的切片截取
- Python--基础学习--基本数据类型
- Python新手学习基础之数据类型——数字类型
- Python新手学习基础之数据类型——变量
- 【零基础入门学习Python笔记005】闲聊之Python的数据类型
- 闲聊之Python的数据类型 - 零基础入门学习Python005
- Python新手学习基础之数据类型——字符串类型
- Python新手学习基础之数据类型——变量
- Python学习入门基础教程(learning Python)--6 Python下的list数据类型
- 小甲鱼:Python学习笔记001_变量_分支_数据类型_运算符等基础
- Python新手学习基础之数据类型——数字类型
- python 学习笔记(3)数据类型2 (元组(tuple),集合,字典)
- Python3学习(一)-基础、数据类型、变量、字符串和编码、list&tuple、if、for、while、dict、set、函数与参数
- 王亟亟的Python学习之路(三)-基础语法以及基本数据类型