python入门篇1:组合数据类型

组合数据类型包含一组数据且作为单一管理结构的数据类型。python的组合数据类型有三大类七小类。

 (1)集合:无序、非一致性、无索引;分为可变集合set、不可变集合frozenset。

 (2)序列:有序、非一致性/一致性、序号索引;分为元组、列表、字符串、字节串。

 (3)字典:无序、非一致性、自定义索引:字典。

组合数据类型又可以分为可变类型和不可变类型:

 (1)可变类型:值可以改变的类型,例如:列表、字典等。

 (2)不可变类型:值不可变,例如有数值类型、字符串、字节串、元组等。

1、各种组合类型的创建

【集合的创建】

             可变集合的创建:大括号{}和set函数。不可变集合的创建frozenset({})形式。

【元组的创建】

     元组类型的常见可以使用:逗号,或者小括号();以及使用tuple()方法来创建。注意元组类型创建后一般不能被修改的序列类型

【列表创建】

列表的创建使用:[]或者list()函数创建。注意列表类型创建后可以随时被修改的

【字典的创建】

字典的创建:使用大括号{}或者dict()函数创建,空大括号{}创建字典类型,而不是集合类型

2、列表使用

#####################python中列表的使用##########################
lt=[] #定义空列表
lt +=[1,2,3,4,5,6,7,8] #向lt列表中新增5个元素
lt[2]=6 #修改列表中第2个索引,索引下表从0开始
print(lt)
lt.insert(2,7) #向lt列表第2个位置增减一个元素
print(lt)
del lt[1] #从lt中第1个位置删除一个元素
del lt[1:4] #删除lt列表中的第1-3位置元素
print(0 in lt) #判断列表lt中是否包含数字0,返回值为False
lt.append(0) #向lt列表中新增数字0
print(lt.index(0)) #lt列表中数字0的索引是多少
print(len(lt)) #lt列表的长度
print(max(lt)) #lt列表中最大的元素
print(lt.clear()) #清空lt列表,返回值为None

【列表类型的应用场景说明】列表使用与组织数据。
(1)列表用来组织数据,非常灵活,它是最常用的组合数据类型;
(2)列表可以用于表示一组有序数据或一组顺序无关数据,进而操作他们;
(3)列表将用于表达一二维数据;
(4)列表计算性能并不高,对于大规模数据,建议采用第三方数据结果,如ndarray。

【列表中append()、extend()、+、+=操作的区别】

  1. append()方法是向列表尾部追加一个新元素,列表只占用一个索引位置,在原有列表上增加;
  2. extend()方法向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加;
  3. +加号,直接使用加号+看上去与用extend()效果一样,但是实际上生成了一个新的列表存在这两个列表的和,只能用在列表相加上;
  4.  +=操作效果与extend()一样,向原有列表追加一个新元素,在原有列表上增加。

python入门篇1:组合数据类型_第1张图片

 

5、身份运算符

省份运算符用于比较两个对象的内存地址是否一致,也就是是否对同一个对象的引用。

在python中针对None比较时,建议使用is判断:

(1)is运算符是判断两个标识符是不是引用同一个对象;x is y,类似id(x)==id(y)

(2)is not运算符是判断两个标识符是不是引用不同对象;x is  not y,类似id(x)!=id(y)

 

6、排序

import operator 
# operator的itemgetter(0)表示键key,operator的itemgetter(1)表示值value
if __name__ == '__main__':
    #1、对字典进行排序
    my_dict = {"a":1,"d":-2,"b":3,"e":2,"c":0,"f":1}
    # 1.1对字典的key判刑
    sort_dict_key = sorted(my_dict)
    print(sort_dict_key) #['a', 'b', 'c', 'd', 'e', 'f']
    #1.2 对字典的值进行排序
    sort_dict_value = sorted(my_dict.values(),reverse=True)
    print(sort_dict_value) # [3, 2, 1, 1, 0, -2]
    #1.3 按照字典key进行降序
    sort_dict = sorted(my_dict.items(),key=lambda x:x[0],reverse=True)
    print(sort_dict) #[('f', 1), ('e', 2), ('d', -2), ('c', 0), ('b', 3), ('a', 1)]
    #operator.itemgetter(1)字典的值value,对值进行升序
    sort_dict2 = sorted(my_dict.items(),key=operator.itemgetter(1),reverse=False)
    print(sort_dict2)# [('d', -2), ('c', 0), ('a', 1), ('f', 1), ('e', 2), ('b', 3)]


    # 列表中的字典排序
    all_data=[{"city":"北京","min_temp":0},
              {"city": "天津", "min_temp": -8},
              {"city": "石家庄", "min_temp": 3},
              ]   
    # 默认reverse值为False,当reverse=True为降序,
    sort_result=sorted(all_data,key=operator.itemgetter('min_temp'),reverse=True)
    print(sort_result)
all_data =[]
    for table in tables:
        trs = table.find_all('tr')[2:]
        for index,tr in enumerate(trs):
            tds= tr.find_all('td')
            city_td = tds[0]
            if index==0:
                city_td=tds[1]
            city = list(city_td.stripped_strings)[0]
            # 取出最低气温
            temp_td = tds[-2]
            min_temp =list(temp_td.stripped_strings)[0]
            all_data.append({"city":city,"min_temp":int(min_temp)}) # 把最低气温进行排序是为了排序

all_data.sort(key=lambda x:x["min_temp"],reverse=False) # reverse=False表示最低气温按照升序

 

 

你可能感兴趣的:(python基础)