python学习笔记2---python中表示“组”的概念与定义

列表(list)

>>> type([1,2,3,4,5,6])
<class 'list'>
>>> type(["hello","worls",1,9])
<class 'list'>
>>> type(["hello","worls",1,9,True,False])
<class 'list'>
>>> type([[1,2],[3,4],[True,False]])//嵌套列表,相当于其他语言中的二维数组
<class 'list'>
列表的基本操作
'宫保鸡丁'
>>> ["宫保鸡丁","糖醋里脊","粉丝蒸虾","鱼香肉丝"][3]
'鱼香肉丝'
>>> ["宫保鸡丁","糖醋里脊","粉丝蒸虾","鱼香肉丝"][0:2]
['宫保鸡丁', '糖醋里脊']
>>> ["宫保鸡丁","糖醋里脊","粉丝蒸虾","鱼香肉丝"][-1]
'鱼香肉丝'
>>> ["宫保鸡丁","糖醋里脊","粉丝蒸虾","鱼香肉丝"][-1:]
['鱼香肉丝']
>>> ["宫保鸡丁","糖醋里脊","粉丝蒸虾","鱼香肉丝"]+['拍黄瓜','炒豆芽']
['宫保鸡丁', '糖醋里脊', '粉丝蒸虾', '鱼香肉丝', '拍黄瓜', '炒豆芽']
>>> ['拍黄瓜','炒豆芽']*['拍黄瓜','炒豆芽']
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    ['拍黄瓜','炒豆芽']*['拍黄瓜','炒豆芽']
TypeError: can't multiply sequence by non-int of type 'list'
>>> ['拍黄瓜','炒豆芽']*3
['拍黄瓜', '炒豆芽', '拍黄瓜', '炒豆芽', '拍黄瓜', '炒豆芽']
>>> ['拍黄瓜','炒豆芽']-['拍黄瓜']
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    ['拍黄瓜','炒豆芽']-['拍黄瓜']
TypeError: unsupported operand type(s) for -: 'list' and 'list'

元组(tuple)

>>> (1,2,3,4,5)
(1, 2, 3, 4, 5)
>>> (1,'-1',True)
(1, '-1', True)
>>> (1,2,3,4)[0]
1
>>> (1,2,3,4)[0:2]
(1, 2)
>>> (1,2,3)+(4,5,6)
(1, 2, 3, 4, 5, 6)
>>> (1,2,3)*3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> type((1,2,3))
<class 'tuple'>
>>> type(1)
<class 'int'>
>>> type([1,2,3])
<class 'list'>
>>> type('hello')
<class 'str'>
>>> type(('hello'))
<class 'str'>
>>> type((1))//如果括号里只有一个元素,python会默认为是要做数学运算,等同于type(1)
<class 'int'>
>>> (1+1)*2
4
>>> (1,2,3)
(1, 2, 3)
>>> (1)
1
>>> (1,)
(1,)
>>> type((1,))
<class 'tuple'>
>>> type(())
<class 'tuple'>
>>> type([1])
<class 'list'>
str list tuple都是序列
>>> 'hello world'[2]
'l'
>>> [1,2,3][2]
3
>>> (1,2,3)[2]
3
切片
>>> [1,2,3,4,5][0:3]
[1, 2, 3]
>>> [1,2,3,4,5][-1:]
[5]
>>> 
>>> "hello world"[0:8:0]
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    "hello world"[0:8:0]
ValueError: slice step cannot be zero
>>> "hello world"[0:8:1]
'hello wo'
>>> "hello world"[0:8:2]
'hlow'
>>> "hello world"[0:8:3]
'hlw'
>>> "hello world"[0:8:4]
'ho'
>>> "hello world"[0:8:5]
'h '
>>> "hello world"[0:8:6]
'hw'
>>> "hello world"[0:8:7]
判断一个序列中是否包含某个元素
>>> 3 in [1,2,3,4,5,6]
True
>>> 7 in [1,2,3,4,5,6]
False
>>> 3 not in [1,2,3,4,5,6]
False
序列的其他操作
>>> len([1,2,3,4,5,6])
6
>>> len('hello world')
11
>>> max([1,2,3,4,5,6])
6
>>> min([1,2,3,4,5,6])
1
>>> max('hello world')
'w'
>>> min('hello world')
' '
>>> min('helloworld')
'd'
ASCII码
>>> ord('w')
119
>>> ord('d')
100
>>> ord(' ')
32

set 集合

集合的特性
>>> type({1,2,3,4,5,6})
<class 'set'>
>>> {1,2,3,4,5,6}[0]  //集合是无序的,没有像str,list,tuple的架构索引,不能切片
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    {1,2,3,4,5,6}[0]
TypeError: 'set' object does not support indexing
>>> {1,2,3,4,5,6}[0:2]
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    {1,2,3,4,5,6}[0:2]
TypeError: 'set' object is not subscriptable
>>> {1,1,2,2,3,3,4,4}  //集合的第二个特性:不重复
{1, 2, 3, 4}
集合的操作
>>> len({1,2,3})
3
>>> len({1,1,1})
1
>>> len({1,2,2})
2
>>> 1 in {1,2,3}
True
>>> 1 not in {1,2,3}
False
>>> {1,2,3,4,5,6} - {3,4}  //求两个集合的差集
{1, 2, 5, 6}
>>> {1,2,3,4,5,6} & {3,4}  //交集
{3, 4}
>>> {1,2,3,4,5,6} | {3,4,7}  //合集|并集
{1, 2, 3, 4, 5, 6, 7}
//定义一个空的集合set()
>>> type({})
<class 'dict'>
>>> type(set())
<class 'set'>
>>> len(set())
0

dict 字典

一个字典可以有很多个key和value,字典是一个集合类型,而不是序列
通过key 得到/访问 value
>>> {"menu1":"宫保鸡丁","menu2":"糖醋里脊","menu3":"粉丝蒸虾","menu4":"鱼香肉丝"}[0]
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    {"menu1":"宫保鸡丁","menu2":"糖醋里脊","menu3":"粉丝蒸虾","menu4":"鱼香肉丝"}[0]
KeyError: 0
>>> {"menu1":"宫保鸡丁","menu2":"糖醋里脊","menu3":"粉丝蒸虾","menu4":"鱼香肉丝"}['menu1']
'宫保鸡丁'
>>> {"menu1":"宫保鸡丁","menu1":"白斩鸡","menu2":"糖醋里脊","menu3":"粉丝蒸虾","menu4":"鱼香肉丝"}['menu1']
'白斩鸡'
>>> {"menu1":"宫保鸡丁","menu1":"白斩鸡","menu2":"糖醋里脊","menu3":"粉丝蒸虾","menu4":"鱼香肉丝"}
{'menu1': '白斩鸡', 'menu2': '糖醋里脊', 'menu3': '粉丝蒸虾', 'menu4': '鱼香肉丝'}
>>> {1:"宫保鸡丁","1":"白斩鸡","menu2":"糖醋里脊","menu3":"粉丝蒸虾","menu4":"鱼香肉丝"}  //key也可以是数字
{1: '宫保鸡丁', '1': '白斩鸡', 'menu2': '糖醋里脊', 'menu3': '粉丝蒸虾', 'menu4': '鱼香肉丝'}
value的类型可以是str | int | float | list | set | dict
>>> type({1:"宫保鸡丁","1":"白斩鸡","menu2":{1:1},"menu3":"粉丝蒸虾",})
<class 'dict'>
key必须是不可变的类型(str、tuple)
>>> {[1,2]:"宫保鸡丁","menu2":"糖醋里脊","menu3":"粉丝蒸虾","menu4":"鱼香肉丝"}
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    {[1,2]:"宫保鸡丁","menu2":"糖醋里脊","menu3":"粉丝蒸虾","menu4":"鱼香肉丝"}
TypeError: unhashable type: 'list'
>>> {(1,2):"宫保鸡丁","menu2":"糖醋里脊","menu3":"粉丝蒸虾","menu4":"鱼香肉丝"}
{(1, 2): '宫保鸡丁', 'menu2': '糖醋里脊', 'menu3': '粉丝蒸虾', 'menu4': '鱼香肉丝'}

clipboard.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值