**PYTHON** 列表与元组
2016-07-15 13:30
423 查看
>列表简介
>>是一种内建的数据结构,用来存储一系列的元素
>>同JS一样,由于解释性语言不必声明数据类型,所以数组的元素也可以很灵或的不相同。
>列表的运算
index索引运算:[]
切片运算:[:]
拼接运算+
重复运算*
成员运算in
长度运算len()
循环for()
>列表方法:
list.intex()可以返回任意的方法
my_list[2] = a #元素赋值
my_list.append()#末尾追加元素
my_list.extend()#末尾追加子表
my_list.insert()#任意位置插入元素
my_list.pop()结尾删除元素
my_lise.sort()#排序
my_list.remove()#删除任意位置元素
my_list.reverse()#倒序
>列表应用
>>内建函数:sum()求和,max()求最大值,min()求最小值
>>列表名本身就是一种指针和地址。所以在赋值是只是一个指针的指向赋值给另一个指针的指向
程序一的输出100,因为a和b指向同一个位置
程序二的输出1,因为a和b指向不同的位置。
>>交换列表中两个元素的值
>>查找并返回元素位置
也可以直接使用lst.index(待查找元素)直接进行查找
>>时间复杂度的计算
[b]>二分查找
>排序
>>选择排序
>>冒泡排序
>>使用内置函数
sorted(lst)
lst.sort()
>嵌套列表
students = [ ['zhang', 84], ['wang', 77], ['li', 100], ['zhao',53] ]
>列表的解析
>>作用:一种有源列表创建新列表的方法
>>语法:[表达式for 变量 in 列表 if 条件]
生成函数-变化范围-约束条件
普通方法
lst = []
for x in range(1, 10)
lst.append(x**2)
print lst
列表解析法:
lst = [x**2 for x in range(1,10) if x % 2 == 0]
生成函数x**2;生成范围1-10;生成条件x%2==0
>定义匿名函数lambda
g = lambda x: x ** 2
print f(8)
所以可以用一下程序实现嵌套列表的值排序
students = [ ['zhang', 84], ['wang', 77], ['li', 100], ['zhao',53] ]
students.sort(key = lambda x: x[1], reverse = true)
>元组
>>注意事项
1、元组同字符串一样具有不可变性,本质上是一个列表
2、append、extend、del等改变列表内容的函数不再适用,其它函数可以用
3、用括号直接创建元组(引号直接创建字符串,方括号直接创建列表)
4、元组的括号可以省略,直接用逗号隔开相同元组里的不同项
>>使用元组赋值
使用元组交换两个值
a, b = b , a
name, domai = 'car@163.com'.split('@') //这样就直接将值赋给两个变量了。
>>函数和元组
使用元组可以返回多个函数值
>>DSU模式(decorate,sort,undecorete)修饰排序反修饰
>>是一种内建的数据结构,用来存储一系列的元素
>>同JS一样,由于解释性语言不必声明数据类型,所以数组的元素也可以很灵或的不相同。
>列表的运算
index索引运算:[]
切片运算:[:]
拼接运算+
重复运算*
成员运算in
长度运算len()
循环for()
>列表方法:
list.intex()可以返回任意的方法
my_list[2] = a #元素赋值
my_list.append()#末尾追加元素
my_list.extend()#末尾追加子表
my_list.insert()#任意位置插入元素
my_list.pop()结尾删除元素
my_lise.sort()#排序
my_list.remove()#删除任意位置元素
my_list.reverse()#倒序
>列表应用
>>内建函数:sum()求和,max()求最大值,min()求最小值
>>列表名本身就是一种指针和地址。所以在赋值是只是一个指针的指向赋值给另一个指针的指向
<span style="font-size:14px;">程序一</span>
<span style="font-size:14px;">a = [1, 2, 3, 4] b = a b[1] = 100 print a[1] 程序二 a = [1, 2, 3, 4] b = a[:] b[1] = 100 print a[1]</span>
程序一的输出100,因为a和b指向同一个位置
程序二的输出1,因为a和b指向不同的位置。
>>交换列表中两个元素的值
<span style="font-size:14px;">def swap(lst, a, b) tmp = lst[a] lst[a] = lst lst[b] = lst[a] x = [10, 20, 30] swap(x, 0, 1)</span>
>>查找并返回元素位置
<span style="font-size:14px;">def search(lst, x): for i in range(len(lst)): if lst[i] == x: return i return -1</span>
也可以直接使用lst.index(待查找元素)直接进行查找
>>时间复杂度的计算
[b]>二分查找
<span style="font-size:14px;">def bi_search(lst, v): low = 0 up = len(lst) - 1 while low <= up mid = (low + up) / 2 if lst[mid] < v: low = mid + 1 elif lst[mid] == v: return mid else: up = mid - 1 return -1</span>
>排序
>>选择排序
>>冒泡排序
>>使用内置函数
sorted(lst)
lst.sort()
>嵌套列表
students = [ ['zhang', 84], ['wang', 77], ['li', 100], ['zhao',53] ]
>列表的解析
>>作用:一种有源列表创建新列表的方法
>>语法:[表达式for 变量 in 列表 if 条件]
生成函数-变化范围-约束条件
普通方法
lst = []
for x in range(1, 10)
lst.append(x**2)
print lst
列表解析法:
lst = [x**2 for x in range(1,10) if x % 2 == 0]
生成函数x**2;生成范围1-10;生成条件x%2==0
>定义匿名函数lambda
g = lambda x: x ** 2
print f(8)
所以可以用一下程序实现嵌套列表的值排序
students = [ ['zhang', 84], ['wang', 77], ['li', 100], ['zhao',53] ]
students.sort(key = lambda x: x[1], reverse = true)
>元组
>>注意事项
1、元组同字符串一样具有不可变性,本质上是一个列表
2、append、extend、del等改变列表内容的函数不再适用,其它函数可以用
3、用括号直接创建元组(引号直接创建字符串,方括号直接创建列表)
4、元组的括号可以省略,直接用逗号隔开相同元组里的不同项
>>使用元组赋值
使用元组交换两个值
a, b = b , a
name, domai = 'car@163.com'.split('@') //这样就直接将值赋给两个变量了。
>>函数和元组
使用元组可以返回多个函数值
>>DSU模式(decorate,sort,undecorete)修饰排序反修饰
<span style="font-size:14px;">def sort_by_length(words): #decorate t = [] for word in words: t.append((len(word),word)) #将元素和元素长度组成一个二元组 #sort t.sort(reverse = true) #undecorate res = [] for length, word in t: res.append(word) return res </span>
<span style="font-size:14px;"> words.sort(key = lambda x:len(x),reverse =true)</span>//巧妙地利用了元组对应的灵活性完成了合成和分割
相关文章推荐
- 访问控制列表概述
- 路由器访问列表的应用
- VBS CHR码值对应列表
- Perl中的列表和数组学习笔记
- 鼠标滑过 放大显示效果的列表
- Erlang语法学习笔记:变量、原子、元组、列表、字符串
- php通过分类列表产生分类树数组的方法
- dedecms列表中显示文章完整标题的解决办法
- 常见系统进程列表第1/2页
- ASP.NET中BulletedList列表控件使用及详解
- JavaScript实现动态删除列表框值的方法
- JS 实现列表与多选框选择附预览动画
- jQuery实现仿腾讯视频列表分页效果的方法
- jquery实现列表上下移动功能
- jquery实现点击展开列表同时隐藏其他列表
- jquery制作select列表双向选择示例代码
- 用javascript实现li 列表数据隔行变换背景颜色
- python 中的列表解析和生成表达式
- python列表操作使用示例分享
- Python3 元组