实验二: 序列练习

一、实验目的  

1、掌握Python序列的基本操作,包括:列表、元组、字典和集合;

2、熟练掌握切片操作;

3、掌握运用列表推导式、生成器表达式等;

4、熟练使用Python内置函数max()、min()、sorted()等。

二、实验题目及结果

1、练习列表、元组的基本操作:+、*、len()、count()、[]、in等。练习列表元素的增加、删除、访问和排序等。

>>> [2,3] + [5,6]                         '将元素添加到列表(元组)中'
[2, 3, 5, 6]
>>> (2,3,4) + (5,6)                       
(2, 3, 4, 5, 6)
>>> alist = [3,5]                          
>>> alist * 3                             '重复列表(元组)中的元素形成新列表(元组)'
[3, 5, 3, 5, 3, 5]
>>> (2,3,4,5) * 3
(2, 3, 4, 5, 2, 3, 4, 5, 2, 3, 4, 5)
>>> alist = [1,2,3,4,5,6,7,8,9,0]
>>> len(alist)                            '返回列表(元组)中元素个数'
10
>>> tuple = (2,3,4,6,7,8,0,1)
>>> len(tuple)
8
>>> list = [1,2,3,3,5,2,3,3,6,7,2]        '统计列表(元组)中指定元素个数'
>>> list.count(3)
4
>>> tuple = (1,3,4,5,3,2,5,7,4,8,9)
>>> tuple.count(5)
2
>>> list = [1,3,4,2,5,6,8]                '列表(元组)切片操作'
>>> print(list[:])
[1, 3, 4, 2, 5, 6, 8]
>>> print(list[3:])
[2, 5, 6, 8]
>>> tuple = (1,2,3,4,5,6,7,8,9)
>>> tuple[:2]
(1, 2)
>>> tuple[::-1]
(9, 8, 7, 6, 5, 4, 3, 2, 1)
>>> 3 in [1,2,3,4]                        '列表(元组)成员判断'
True
>>> [3] in  [1,2,3,4]
False
>>> 5 in (1,2,3,(4,5))
False
>>> 5 in (3,4,5)
True
>>> alist = [3,4,5]                       '列表元素增加'
>>> alist = alist + [9]                   '利用+运算符'
>>> alist
[3, 4, 5, 9]
>>> alist = [2,3,4]
>>> alist.append(5)                       'append():尾部增加一个元素'
>>> alist
[2, 3, 4, 5]
>>> list = [1,2,3,4,5]
>>> list.insert(2,5)                      'insert():列表中任意位置插入一个元素'
>>> list
[1, 2, 5, 3, 4, 5]
>>> list.extend([6,7])                    'extend():将另一列表中元素追加到当前列表后'
>>> list
[1, 2, 5, 3, 4, 5, 6, 7]
>>> list += '123'                         '+=:类似extend()方法'
>>> list
[1, 2, 5, 3, 4, 5, 6, 7, '1', '2', '3']   '列表元素删除'
>>> del list[2]                           '利用del命令删除指定位元素'                  
>>> list
[1, 2, 3, 4, 5, 6, 7, '1', '2', '3']
>>> list.pop(3)                           'pop():删除并返回指定位置元素,默认最后一个元素'
4
>>> list
[1, 2, 3, 5, 6, 7, '1', '2', '3']
>>> list.remove(5)                        'remove():删除首次出现指定元素'   
>>> list
[1, 2, 3, 6, 7, '1', '2', '3']            '列表的访问'
>>> list[3]                               '通过下标直接访问元素'                          
6
>>> list.index(7)                         'index():获取指定元素首次出现的下标'                    
4
>>> list.count(0)                         'count():统计指定元素出现次数'
0
>>> list.count(1)
1
>>> list = [2,3,5,4,6,7]                  '列表排序'
>>> list.sort()                           'sort():原地排序,无返回值,默认升序'
>>> list
[2, 3, 4, 5, 6, 7]
>>> list.sort(reverse = True)             '降序'
>>> list
[7, 6, 5, 4, 3, 2]
>>> sorted(list)                          'sorted():排序返回新列表'
[2, 3, 4, 5, 6, 7]
>>> sorted(list,reverse = True)
[7, 6, 5, 4, 3, 2]
>>> list.reverse()                        'reverse():原地逆序'
>>> list
[2, 3, 4, 5, 6, 7]

编程题1:输入一个包含若干整数的列表,输出该列表中元素的最大值、最小值,元素的个数,列表元素的和等。并输出一个新列表,要求新列表中只包含原列表中的偶数。

列表推导式:

#newlist = [x for x in list if x%2 == 0]
newlist = []
for x in list:
    if x%2 == 0:
       newlist.append(x)

2、练习字典的基本操作:添加、删除、是否为空字典、取字典中所有的key/value、判断key是否存在等。

>>> dict = {'name':'dong','sex':'male'}
>>> dict
{'name': 'dong', 'sex': 'male'}
>>> dict['age'] = 18                     '字典的添加'
>>> dict['address'] = 'chinese'
>>> dict
{'name': 'dong', 'sex': 'male', 'age': 18, 'address': 'chinese'}
>>> dict.update({'a':'a'})               'update()更新字典中键值对,可修改值,也可添加元素'
>>> dict
{'name': 'dong', 'sex': 'male', 'age': 18, 'address': 'chinese', 'a': 'a'}
>>> del dict['name']                     '字典的删除'
>>> dict
{'sex': 'male', 'age': 18, 'address': 'chinese'}
>>> dict.pop('age')                
18
>>> dict
{'sex': 'male', 'address': 'chinese'}
>>> dict.popitem()
('address', 'chinese')
>>> dict = {'name': 'dong', 'sex': 'male', 'age': 18, 'address': 'chinese'}
>>> dict.clear()                         '删除整个字典'
>>> dict
{}
>>> dict = {}                            '判断字典是否为空'               
>>> if dict:
...    print("this dict is not empty")
... else:
...    print("this dict is empty")
...
this dict is empty
>>> dict = {'name': 'dong', 'sex': 'male', 'age': 18, 'address': 'chinese'}
>>> dict.keys()                          '读取字典的键'
dict_keys(['name', 'sex', 'age', 'address'])
>>> dict.values()                        '读取字典的值'
dict_values(['dong', 'male', 18, 'chinese'])
>>> 'name' in dict                       '用in方法判断字典中的键是否存在'
True

编程题2:输入两个分别包含若干整数的列表listA和listB,要求使用listA中的元素作为键,使用listB中的元素作为值,生成一个字典,并输出。

zip():将多个可迭代对象元素对应元素打包成一个个元组,返回包含这些元组的zip对象

编程题3:从['Python','Java','C','C++','C#']中随机生成20个元素,然后统计每个元素的出现次数。例如:随机生成列表al的元素如下图所示,d为统计后生成的字典。

 举一反三:改变统计的数据源,可以扩展为“文本词频统计”类问题。例如:名著中人物出场次数的统计;新闻报道、科研论文、政府工作报告等词频统计类应用。

3、练习集合的基本操作:添加、删除、是否为空集、并、交、差等。

>>> set = set(range(8,14))                   '集合的创建'
>>> set
{8, 9, 10, 11, 12, 13}
>>> set.add(15)                              '集合元素的增加'
>>> set
{8, 9, 10, 11, 12, 13, 15}
>>> set.pop()                                '集合元素的删除'
8
>>> set
{9, 10, 11, 12, 13, 15}
>>> set.remove(10)                           '删除指定元素'
>>> set
{9, 11, 12, 13, 15}
>>> del set
>>> set
<class 'set'>
>>> set = {1,2,3,4,5}
>>> set.clear()
>>> set
set()
>>> set = {}                                 '判断是否为空集合'
>>> if set:
...    print("not empty")
... else:
...    print("empty")
...
empty
>>> a_set = {1,2,3,4,5}
>>> b_set = {2,3,4,7,8,9}
>>> a_set & b_set                            '交集'
{2, 3, 4}
>>> a_set | b_set                            '并集'
{1, 2, 3, 4, 5, 7, 8, 9}
>>> a_set - b_set                            '差集'
{1, 5}
>>> b_set - a_set
{8, 9, 7}

编程题4:创建两个集合,返回这两个集合的并集和差集。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值