精华内容
下载资源
问答
  • python组合数据类型题目
    2022-04-19 11:35:13

    一,程序的控制结构

    (1)请编写代码,完成功能:由键盘输入行数 n, 例如 n=6, 实现下面图像(金字塔型)的打印输出。

    while True: #运行完一次再来一次
        try:
            n = int(input("请输入行数:"))  #输入需要的行数n
            for line in range(1,n+1):  #锁定行,每一行单独打印
                print(" "*(n-line),"*"*(2*line-1))  #根据图示关系找出要想形成金字塔形需要提前设定的空格数和所需要的*数,使用%格式化也可以,但是format格式化怎么试都不行
        except ValueError:
            print("按常识性要求输入!")  #防止不按套路出牌的情况发生

    (2)对代码进行注释,并说程序的设计思路。

    如上

    二、组合数据类型

    (1)列表L=['b', 'c', 'd', 'c', 'b', 'a', 'a'],去除重复元素并输出新列表。

    #法一
    L = ['b', 'c', 'd', 'c', 'b', 'a', 'a']
    set_L = set(L)
    distinct_L = list(set_L)
    distinct_L.sort(reverse = False)
    print(distinct_L)
    #法二
    L = ['b', 'c', 'd', 'c', 'b', 'a', 'a']
    distinct_L = []
    for i in L:
        if i not in distinct_L:
            distinct_L.append(i)
    distinct_L.sort(reverse = False)
    print(distinct_L)

    (2)有如下字典dict = {"k1":"v1","k2":"v2","k3":"v3"},要求增加一个键值对"k4":"v4",然后遍历输出所有键值对。

    dict = {"k1":"v1","k2":"v2","k3":"v3"}
    dict["k4"] = "v4"
    print(dict)
    list_dict = dict.items()
    for i in list_dict:
        print(i)

    更多相关内容
  • 文章目录第一部分 列表 list1.1 列表的表达 []另一种生成方式:list(可迭代对象)range()1.2 列表的性质列表的长度——len(列表)列表的索引——与同为序列类型的字符串完全相同列表的切片——与字符串完全相同1.3 ...
  • 组合数据类型练习题.docx
  • Python:组合数据类型

    2022-04-19 15:10:46
    或者怎么能让程序更好的组织一组数据,这就是组合数据类型需要完成的任务。 Ⅰ集合数据类型及操作 1. 定义: ①集合是多个元素的无序组合,与数学集合概念一致; ②集合元素之间无序,每个元素唯一,不存在...

    引言:给出一个数字7,它是一个数据,表达一个基本含义,但在我们处理问题的时候,我们经常会遇到的不是一个数据,而是一组数据。一组数据可以表达一个或多个含义,那么怎么让程序把一组数据,当成一个数据来处理呢?或者怎么能让程序更好的组织一组数据,这就是组合数据类型需要完成的任务。

    Ⅰ集合数据类型及操作

    1. 定义:

    ①集合是多个元素的无序组合,与数学集合概念一致;

    ②集合元素之间无序,每个元素唯一,不存在相同元素;

    ③集合元素不可更改,不能是可变数据类型;

    ④建立集合类型用{}或set(),建立空集合用set。

    e.g:

    >>>B =set(“pypy123”)

    >>>print(B)

    >>>B ={‘p’,’y’,’3’,’1’,’2’}

    2. 集合操作符:

    ①S | T :返回一个新集合,该集合是S和T的并集;

    ②S – T:返回一个集合,该集合在S中但不在T中的元素;

    ③S & T:返回一个包括S和T同时拥有的元素的集合;

    ④S ^ T :返回一个包括S和T中的非相同元素的集合;

    ⑤S <= T或S<T:判断子集关系,根据判断返回True/False;

    ⑥ S >= T或S>T:判断包含关系,根据判断返回True/False。

    3.  增强操作符:

    ①S |= T:更新S,返回一个集合,包括S和T中使用元素;

    ②S-=T:更新S,返回一个集合,包括在S中但不在T中的元素;

    ③S&=T:更新S,返回一个集合,包括同时在S和T中的元素;

    ④S^=T:更新S,返回一个集合,包括S和T中的非相同元素。

    4.集合的处理方法:

    S.add(x):在集合S中增加x元素

    S.discard(x):移除x元素,当x不在S中时,程序不会报错;

    S.remove(x):移除x元素,当x不在S中时,程序会报错;

    S.clear():移除S中的所有元素;

    S.pop():随机返回S中的元素并更新S,若S中无元素,产生KeyError;

    S.copy():返回集合S的一个副本;

    len(S):返回S中的元素个数;

    x in S:判断x元素是否在集合S中,并返回True/False;

    set(x):将其他类型的变量转化为集合类型。

    5.集合类型应用场景:

    ①包含关系比较

    e.g:

          >>>”p”in {‘p’,’y’,123}

          True

    ②数据去重:

       >>>ls = [‘p’,’y’, ‘p’,’y’,123]

      >>>s = set(ls)

          {‘p’,’y’,123}

    Ⅱ序列数据类型及操作

    1.定义:

    ①序列是具有先后顺序的一组关系;

    ②序列是一维元素向量,元素类型可不同;

    ③类似于数学元素序列:S0 , S1 ……Sn-1;

    ④元素间有序号引导,通过下标访问序列的特定元素。

    2.序列处理函数及方法

    ①通用操作符:

    x in s :判断x是否是S中元素,并且输出True/False

    x not in s:判断是否是S中元素,并且输出False/True

    S + T:连接两个序列S和T

    S*n 或n*S:将序列S复制n次

    S[i]:索引,返回S中的第i个元素

    S[i:j]或S[i:j:k]:对S进行切片并返回

    ③通用函数和方法:

    len(S):返回序列S的长度

    min(S):返回序列S中的最小元素

    max(S):返回序列S中的最大元素

    S.index(x)或S.index(x,i,j)返回序列S从i到j中第一次出现元素x的位置

    S.count(x):返回S中出现x的总次数

    3.元组数据类型:

    ①定义:-元组是序列类型的一种扩展。

      -元组是一种序列类型,一旦创建就不能修改

      -使用()或tuple()创建一个元组,元素间用“,”隔开

      -可以使用或者不使用()

    e.g:

          >>>def func():

                        return 1,2

    ②元组操作类型:元组继承了序列类型的全部通用操作

    4. 列表数据类型及操作:

    ①定义:列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

    ②列表类型操作函数:

    ls[i] = x:替换ls中的第i个元素

    ls[i:j:k] = lt:用列表lt替换ls切片后的所对应的元素拓展

    del ls[i]:删除ls中的第i位元素

    del ls[i:j:k]:删除列表ls中第i到j,以k为步长的元素

    ls += lt:更新ls,将lt元素增加到ls中

    ls*=n :更新列表ls,其元素重复n次

    ③列表操作方法:

    list.append(obj):在列表末尾添加新的对象

    list.count(obj):统计某个元素在列表中出现的次数

    list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

    list.index(obj):从列表中找出某个值第一个匹配项的索引位置

    list.insert(index, obj):将对象插入列表

    list.pop([index=-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

    list.remove(obj):移除列表中某个值的第一个匹配项

    list.reverse():反向列表中元素

    list.sort( key=None, reverse=False):对原列表进行排序

    list.clear():清空列表

    list.copy():复制列表

    [if !supportLists]5.  [endif]序列类型应用场景

    ①元组用于元素不改变的应用场景,更多用于固定搭配场景

    ②列表更加灵活,是最常用的序列类型

    ③最主要作用:表示一组有序数列,进而操控它们

    Ⅲ字典数据类型及操作

    1.定义:一种键(索引)和值(数据)的对应

    2.字典类型是“映射”的体现:

    ①键值对:键是数据索引的扩展

    ②字典是键值对的集合,键值对之间无序

    ③使用{}或dict()创建

    e.g:

          >>>d= {‘中国’:’北京’,’美国’:’华盛顿’,’法国’:’巴黎’}

       >>>d[‘中国’]

       ‘北京

    3.字典处理函数及方法:

    del d[k]:删除字典d中键k对应的数据值

    k in d:判断键k是否在字典d中,如果在返回True,否则False

    d.keys():返回字典d中所有的键信息

    d.values():返回字典d中所有的值信息

    d.items():返回字典d中所有的键值对信息

    d.get(k, <default>):键k存在,则返回相应值,不在则返回<default>值

    d.pop(k, <default>):键k存在,则取出相应值,不在则返回<default>值

    d.popitem();随机从字典d中取出一个键值对,以元组形式返回

    d.clear():删除所有的键值对

    len(d):返回字典d中元素的个数

    4.字典数据类型应用场景:最主要作用是利用键值对数据,进而操作它们。

    Ⅳ实例:基本统计值计算

    对相关题目解答流程:

    1.问题描述:对于一组数据,计算并分析出它们的平均数,中位数,极差。

    总个数:len()

    求和:for ...in

    平均值:求和/总个数

    方差:各数据与平均数差的平方的和的平均数

    中位数:排序后,奇数个找中间一个数,偶数个找中间两个数。

    补充:sorted()函数可以对列表进行排序

    思路:对于平均数,我们需要求得它的总个数与和;对于中位数,我们需要对总个数进行判断,个数为奇数取中间值,偶数取中间两数的平均数;对于方差,我们需要利用平均数,再用每个数减去平均数的平方,求得的和开平方即为方差。

    代码:

    输出结果:

    Ⅴ总结:通过对序列数据类型的学习,以后在对于不同数据类型的储存与使用将会更加方便,程序也会更加清晰。无论是多个元素无序组合,元素不能更改的集合;还是具有先后顺序的序列;亦或是键值对集合的字典,都值得我们认真学习并通过不断练习达到灵活使用的程度!

    展开全文
  • 已知元组tu_num1=('p','y','t'['o','n']),请向元组的最后一个列表中添加新元素'h'
  • 组合数据类型编程练习 内容: 1.仿照课本6.7的实例,对《三国演义》中出现的人物统计。 2.编写程序,根据用户输入的数字转换成相应的中文的大写数字。例如,1.23转换为“壹点贰叁”。 步骤: 1.仿照课本6.7的实例,...

    目标:

    组合数据类型编程练习

    内容:

    1.仿照课本6.7的实例,对《三国演义》中出现的人物统计。
    2.编写程序,根据用户输入的数字转换成相应的中文的大写数字。例如,1.23转换为“壹点贰叁”。

    步骤:

    1.仿照课本6.7的实例,对《三国演义》中出现的人物统计。
    代码如下:
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

    2.编写程序,根据用户输入的数字转换成相应的中文的大写数字。例如,1.23转换为“壹点贰叁”。
    代码如下:

    #-*- coding: utf-8 -*-
    list_num =["零","壹","贡""参","肆","伍","陆","柴","搠","以","点"]
    print("\n请输入数字:")
    num=input()
    list_num1=list(num)
    for n in list_num1:
        if n==".":
            print(list_num[10],end='')
        else:
            print(list_num[int(n)],end='')
    

    运行结果:
    在这里插入图片描述

    心得:

    数据类型的分类框架为序列类型,集合类型,映射类型,它们包括了列表list,元组tuple, 集合set,字典dict四种,它们在算法中可以灵活变通,使复杂的问题得到简单化。

    展开全文
  • Python组合数据类型(一)Python组合数据类型是由基本数据类型组合而成,当我们需要处理的问题较复杂时仅用基本数据类型就无法满足要求,这时就要使用到组合数据类型组合数据类型可分为序列类型、映射类型和...

    Python的组合数据类型(一)

    Python的组合数据类型是由基本数据类型组合而成,当我们需要处理的问题较复杂时仅用基本数据类型就无法满足要求,这时就要使用到组合数据类型。组合数据类型可分为序列类型、映射类型和集合类型,其中序列类型是有序类型,映射类型和集合类型是无序类型。

    一、序列类型

    序列类型是一种包括多项数据的组合结构,其特点是序列结构中所包含的各数据成员是有前后顺序的,可通过索引来访问。常用的序列类型有元组、列表和字符串。

    1、元组和列表

    元组和列表的结构完全相同,只是元组中的成员不能修改,但列表可以修改,元组是用圆括号括起来的,用逗号分隔的一系列数据,各数据成员的类型可以不同,比如("ABC",'NFD',123,False,45.6),((12,34),(23.4,66,55))都是合法的元组。而列表则是用方括号括起来的,用逗号分隔的一系列数据,各数据成员的类型可以不同,比如["ABC",'NFD',123,False,45.6]、[(12,34),(23.4,66,55)]都是合法的列表。元组可以作为列表的成员,列表也可作为元组的成员。

    元组的创建:用下列语句可以创建元组。

    (成员1,成员2 ,……,成员n)

    用下列语句可以创建列表

    [成员1,成员2 ,……,成员n]

    也可通过下列语句创建元组:

    tuple(range(1,10)) 相当于(0,1,2,3,4,5,6,7,8,9)

    可通过下列语句创建列表:

    list(range(1,10))相当于[0,1,2,3,4,5,6,7,8,9]

    在程序中一般要将创建的元组或列表存储在变量中以便于使用,所以元组或列表的定义通常和赋值语句结合起来,写成下例所示的形式。

    x1=

    tuple(range(1,10))

    x2=("ABC","Fla","hajk")

    y1=

    list(range(1,10))

    y2=[22,44,55,66,88]

    实际创建元组时,圆括号并不是必须的,也可以按如下方式创建元组。

    x=1,2,3,4

    显示变量x

    的值时仍显示为:(1,2,3,4)

    特别要说明的是当创建只有一个成员的元组时,必须在元组成员后面写一个逗号,如下例所示:

    x=23,

    或写为

    x=(23,)

    其中的括号可以省略,但逗号却不能省略。

    2、用索引来访问元组或列表

    假设有如下的元组:

    x=(12,59,99,76,56,67,100)

    则x[0]相当于元组中的第一个成员,x[1]相当于元组中的第二个成员。即:

    x[0]=12,x[1]=59,x[2]=99,x[3]=76,x[4]=56,x[5]=67,x[6]=100

    元组或列表的索引值是从0开始,有n个成员的元组或列表,其第一个成员的索引值是0,而最后一个成员的索引值是n-1,其余依此类推。

    也可以使用负数值作索引值,负数值从元组或列表的最后一个成员开始计数,即上例中的元组中x[-1]相当于元组中的最后一个元素,x[-2]相当于倒数第二个成员,即: x[-1]=100,x[-2]=67,参见下图。

    sg_trans.gif

    列表和元组的索引方式相同。

    如果一个列表中含有其他列表,则可以用二维索引来对其成员的成员进行访问。

    例如x=[[1,2,3,4,5],[22,33,44,55,66],[100,200,300,400,500]]

    则x[0]代表列表中的第一个成员[1,2,3,4,5]则x[0][0]就代表[1,2,3,4,5]的第一个成员,即x[0][0]=1。同理则x[0][1]代表x第一个成员[1,2,3,4,5]中的第二个子成员,即x[0][1]=2。同理x[1]代表x的第二个成员[22,33,44,55,66],则x[1][0]即代表[22,33,44,55,66]中的第一个子成员。即x[1][0]=22, 同理则x[1][1]代表x第二个成员[22,33,44,55,66]中的第二个子成员,即x[1][1]=33。

    其他成员的索引值依此类推。参见下图的运行结果

    sg_trans.gif

    当然如果一个列表成员中还有多层嵌套列表,则其访问方法可依此类推。

    3、元组和列表的常用操作

    1)更改列表中某成员的值

    比如x=[3,5,7,9]

    x[2]=10

    执行上列语句后,则x=[3,5,10,9],列表x的成员x[2]被改成了10

    2)从列表中截取子序列

    我们用[n:m:d]的格式可以从一个列表中截取出来一部分成员形成一个新的列表,其中n表示截取时列表的起始成员的索引位置,m-1表示终止的索引位置,d表示截取每个成员时跳过的成员数量。

    比如x=[10,20,30,40,50,60,70],则x[1:4]表示从x[1]到x[3]作为截取对象,截取后生成的新列表为[20,30,40],即包含x[1]、x[2]、x[3]共三个成员。

    【例题1】:x=(11,21,31,41,51,61)

    z=x[1:5:2]

    求z的值

    解答:x[1:5:2]表示从x元组中取出x[1],x[1+2]形成新元组,并将新元组的值保存到变量z中。所以z=(21,41)

    如果使用x[-4:-1]进行截取,则表示新元组由元素为x[-4],x[-3],x[-2]组成,即新元组为(31,41,51)注意方括号中的第二个索引值是不被包括在取值范围内的。

    又比如:x[5:1:-2],生成的新元组的索引值应是从5到2,每次间隔2个成员而生成的,于是新元组只能由x[5],x[3]构成,方括号中的第二个值是不被包括的。

    sg_trans.gif

    3)元组和列表的加运算和乘运算

    用加号可以将两个元组或两个列表连接起来生成一个新的元组或列表,比如:

    x=(1,2,3,4,5)

    y=(10,20,30)

    z=x+y

    则z=(1,2,3,4,5,10,20,30)

    用乘号可以实现元组或列表元素的重复扩展,比如

    x=(1,2,3,4,5)

    z=3*x

    则z=(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)

    4)求元组或列表中元素的个数和最大值及最小值

    用函数len可以求出元组或列表中的元素个数。比如

    x=(1,2,3,4,5)

    y=(10,20,30)

    则len(x)的值为5,len(y)的值为3,求出的正是x或y中的成员的个数。

    min(x)的值是1,max(x)的值是5,前者用于求元组或列表中成员中的最小值,后都用于求成员中的最大值。

    5)元组和列表的转换

    如果x=(1,2,3,4,5),则list(x)的值为[1,2,3,4,5],即list 函数将元组x转换成了列表。

    同样如果y=[11,22,33,44],则tuple(y)的值为(11,22,33,44),即函数tuple将列表转换成了元组。

    6)求一个值是否是一个列表或元组的成员

    用表达式: a in

    x可以判断a是否为x的成员。

    用表达式a not in

    x可以判断a是否不是x的成员

    比如:x=[33,21,45,56]

    a=21

    a in x

    表达式:a in x

    值为True,表示a是x的成员。

    表达式:a not in x

    的值为False,表示a 不是x的成员是假的,也就是a是x的成员。in 和 not in

    可以看作是用于元组和列表的两个运算符号。

    sg_trans.gif

    7)列表的常用方法

    每一个列表、存储列表的变量都属于列表对象,列表对象有一批自己的函数,这些函数我们称之为方法,这些称作方法的函数在使用时前面要带上列表对象,比如有下列语句:

    y=11

    x=[1,3,5,7,9]

    x.append(y)

    其中append就是一个属于列表对象的方法(本质上也是一个函数,只不过这个函数只属于列表对象,因此只用于列表对象)在写这类函数时前面要写出应用该函数的对象的名称,对象名称和函数间用点号分隔。x.append(y)的功能是将数据y添加到x列表中,执行该语句后,x=[1,3,5,7,9,11],可见数值11被添加到列表的最后,成了x列表的最后一个成员,可用于列表对象的方法如下表所示:

    sg_trans.gif

    用命令dir(list)可查看属于列表所有的方法

    上面的方法中能改变当前对象的都只能用于列表,而不能用于元组,因为元组对象的成员定义后是不能修改的。

    为了熟悉上面的各方法,请仔细观察分析下列的各语句的执行结果,并理解各相关方法的功能。下面窗口中黑色文字是输入的语句,蓝色是显示的执行结果。

    sg_trans.gif

    sg_trans.gif

    【例题2】从键盘输入十个学生的单科成绩,将各分数存储在列表中,并显示最高分,最低分、平均分和总分。

    分析:因为循环次数是确定的,所以可以用for循环来接收键盘的数据。可以先定义一个空列表和一个用于存入总分的变量,每接收一个数据后将其存储在列表中,并累加到保存总分的变量中,最后再用相关的函数完成数据的统计,程序如下:其中x是用于保存分数的列表变量,s是用来存入总分的变量。

    sg_trans.gif

    上面程序中的str(i)是一个函数,该函数的功能是将括号中的变量转换成字符串型数据,因为变量i 是一个数值,不转换就不能和字符串相连接。如果i=2.则str(i)的值为"2",函数str(i)的功能是将i的值加上了引号,变成了字符串。

    下图是程序的运行过程和结果。

    sg_trans.gif

    【例题3】从键盘输入十个学生的语文、数学和外语三科成绩,统计各科的总分、平均分、最高分和最低分。

    分析:我们分别将十个语文成绩存储在列表中的第一个成员中,十个数学成绩存储在列表的第二个成员中,十个外语成绩存储在列表的第三个子成员中,显然列表的三个成员也都是列表对象,最后形成如下的形式:

    [[88,99,66……],[33,55,66……],[66,55,44……]],再分别对各成员进行统计

    我们首先要定义的列表应该是如下所示的有三个空列表成员的空列表:

    x=[[],[],[]]

    我们再用一个列表存储三个科目的名称,为了便于显示:

    km=["语文","数学","外语"]

    为了便于统计总分,我们再定义一个有三个成员的列表s;

    s=[0,0,0]

    我们可以使用双层循环来接收和统计三科的成绩,写出程序如下:

    sg_trans.gif

    sg_trans.gif

    外层循环在进行第一次循环时,j=0,此时km[0]="语文",各成绩累加后存储在s[j]中,也就是s[0]中,外层循环的第二次循环,j=1,km[1]="数学",各成绩均被累加到s[j]中也就是s[1]中,外层循环的第三次循环,j=2,km[2]="外语",各成绩均被累加到s[j]中也就是s[3]中,于是有下面的运行过程和结果。

    sg_trans.gif

    【例题4】从键盘输入若干个职工的基本信息,存储在列表中,信息包括:序号,姓名、性别、出生日期、政治面目、基本工资,当输入"exit"时结束输入,并显示列表。

    【分析:】

    1)首先定义程序中用到的变量,如下四行代码完成了程序中用到的变量的定义。

    s=[]

    xx=('序号','姓名','性别','出生日期','政治面目','工资')

    l=len(xx)

    i=0

    上面的第一行代码“s=[

    ]”定义了一个列表型变量,用于存放各职工的基本信息。

    第二行代码“xx=('序号','姓名','性别','出生日期','政治面目','工资')”定义了一个元组,元组中的各成员正是职工各信息项的名称。这部分内容不会发生变化所以使用了元组型数据。

    第三行代码“l=len(xx)”求出职工信息的项数,存储在变量l中,这里主要是考虑到程序的通用性,使用了求元组长度的函数,实际只接使l=6也可以,但将来若增加职工基本信息的项目时程序就会出错。

    第四行代码“i=0”用于定义了一个变量,这个变量代表职工的序号,从0开始,是因为列表的索引是从0开始。每输入完一个职工的全部基本信息后,这个变量的值会加1,实现下个职工信息的接收和保存。

    2)然后用两层循环来接收信息,外层循环用变量i来控制输入的是第几个人的信息,内层循环用变量j来控制输入的是第i个人的第几项信息。进入外层循环后首先要在s列表中添加一个空的子表,用来存入第i个人的各项信息(序号,姓名等……),在内层循环中接收数据后要用语句“s[i].append(x)”将接收到的信息x保存在s列表的第i个子表的第j项中。在保存数据前,内层循环要先判断x接收到的值,如果是"exit"则跳出内循环,不再保留该数据,退出内层循环后进入外层循环,仍要进行同样的判断,以便跳出外循环,以结束循环。

    外循环中还要有i每次循环自动加1的语句。

    代码如下:

    sg_trans.gif

    逻辑结构上,程序实际只有一条死循环语句,该语句的语句块由四条语句构成。

    语句块中的第一条语句是“s.append([])”用于在空列表变量中添加一个空子列表成员,该成员是一个空表。此时s=[[]], 即s中存储的列表是一个含有空表成员的列表。每进入一次外循环,s列表中都会增加一个空白子表,以便保存后面接收到的职工的各项信息。

    语句块中的第二条语句是一个循环,该循环语句循环次数为0到l-1,实际就是循环l次,l恰是每个职工需要输入的信息数目。通过该循环逐项接收当前职工的各项信息。

    内层循环的第一条语句是x=input("请输入第"+str(i+1)+"个职工的"+xx[j]),这条语句在执行时会显示为:

    请输入第一个职工的序号

    我们在键盘输入第一个职工的序号后,循环中判断是否输入的内容是exit,如果是,就跳出循环,如果不是,就用语句“s[i].append(x)”保存x中的数据。内循环每循环一次j都自动加1,提示输入的内容也自动改变。参见下图。

    sg_trans.gif

    内层循环中的第二条语句是判断语句,用于判断输入的是否是结束输入的信息,如果是就跳出内层循环。如果不是就继续执行下面的语句。

    内层循环中的第三条语句是“s[i].append(x)”,这条语句用于将从键盘输入的信息添加到s列表变量的内层列表中。输入第一个人的信息时这条语句是:s[0].append(x),即将第一个人的各条信息添加到s列表中的第一个子表中。第二次外层循环时,i值为1,于是就会将第二个人的信息添加到s列表的第二个子表中。

    j变量于用记录第i个人的第j条信息。所以内循环中j每次都加1,表示接收的是同一个人的下一项数据。

    最后完成两件事,一个是从s中去掉最后一个添加的表,因为最后接收的是"exit",而这个数据是不需要保存的,所以表中未保存数据的空子表要进行删除,我们用语句s.pop()即可实现。要完成的第二件事是输出表的内容,为了使输出的内容看起来美观易读,我们用循环来输入,第次循环输出一个职工的基本信息,程序如下:

    L=len(s)

    for j in

    range(0,L):

    print(s[j])

    最后完整的程序如下:

    sg_trans.gif

    程序的运行过程和结果如下图所示。

    sg_trans.gif

    【例题5】将上面的程序改为最后按工资由低到高的顺序排序后显示。

    我们在上一程序的输出语句前插入“s.sort(key=lambda x:eval_r(x[5]))”语句,即可实现题目的要求。

    sg_trans.gif

    修改后的程序输出如下图所示:输出结果已按工资从低到高进行了排序。

    说明:语句“s.sort(key=lambda x:eval_r(x[5]))”的括号部分是排序的依据,其中lambda是关键字,该关键字用于定义匿名函数,这部分内容将在后面学习,后面的x[5]表示按列表中的第五项内容进行排序,因为工资在列表中是以字符串形式出现的,所以在x[5]前面使用了函数eval_r(),临时将工资转换为数值,再按数值的大小进行排序。

    如果要按序号排序,则可以使用的语句是:“s.sort(key=lambda x:x[0])”

    如果要按从大到小的顺序排序,则可将上面的语句改为如下的形式:其中“reverse=True”表示降序排序。

    “s.sort(key=lambda x:eval_r(x[5]),reverse=True)”

    sg_trans.gif

    展开全文
  • 1、‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬ 关于Python组合数据类型,以下描述错误...
  • python组合数据类型

    2022-02-20 21:36:28
    67,89,13,243,56,67,311,431,111,141] #本题目主要针对的是没有重复数据的列表 for i in ls.copy(): #遍历ls中每一个元素,ls.copy()这是一个拷贝副本,保证删除ls中的元素后,不影响元素遍历。 if is_prime(i) == ...
  • 集合类型集合类型定义集合是多个元素的无序组合集合类型与数学中的集合概念一致集合元素之间无序,每个元素唯一,不存在相同元素集合元素不可更改,不能是可变数据类型理解:因为集合类型不重复,所以不能更改,否则...
  • Python:T4组合数据类型(含答案)

    千次阅读 2022-04-01 21:04:24
    建议收藏!!! 【选择题】 1. 【单选题】 下面代码的执行结果是: B ls = ["2020", "20.20", "Python"] ...A、['2020', '20.20', 'Python', 2020] ...B、['2020', '20.20', '...C、['2020', '20.20', 'Python', 2020,
  • python数据类型经典练习题

    万次阅读 2018-09-09 12:54:58
    输入:hello java hello python 输出:hello 2  java 1  python 1 代码如下: # _*_ coding:utf-8 _*_ words_dict = {} sentence = raw_input() words_list = sentence.split(' ') # print ...
  • python习题演练(四)(组合数据类型+文件和数据格式化) 字符串去重排序 描述:输入一个非空字符串,去除重复的字符后,从小到大排序输出为一个新字符串。 两数之和 描述:给定一个整数列表 nums 和一个目标值 ...
  • Python基本数据类型相关练习题

    千次阅读 2017-05-10 14:36:43
    核心内容:1、str相关练习题1、str相关.../usr/bin/python # -*- coding:utf-8 -*-name = " aleX " print(name.strip()) print(name.startswith("al")) print(name.endswith("X")) print(name.replace("l","p")) print
  • 组合数据类型可以将多个数据组织起来,根据数据组织方式的不同,Python的组 合数据类型可分成3类:序列类型、集合类型和映射类型,如图6-1所示。 字符串(str) 序列类型元组(tuple) 列表(it 组合数据类型 集合类型—集合...
  • 10、分页显示内容 a、通过for循环创建301条数据,数据类型不限,如: alex-1alex1@live.com pwd1 alex-2alex2@live.com pwd2 alex-3alex3@live.com pwd3 ..... b、提示用户,请输入要查看的页码,当用户输入指定页码...
  • 数据类型不限,如:alex-1 alex-1@live.com pwd1 user_list=[]for i in range(1,302): temp={"name":"alex"+str(i),"email":"alex@live.com"+str(i),"password":"pwd"+str(i)} user_list.append(temp)2)提示用户 请...
  • Python组合数据类型

    2021-12-14 17:53:36
    这是Python123上的题目,我觉得很有意义,这是他给的标准答案(最后一个是我自己写的),之所以记录就是可以让自己以后多看看 目录1、文本词频统计2、《沉默的羔羊》之最多单词3、人名最多数统计 1、文本词频统计 ...
  • Python变量及数据类型

    2020-12-23 02:12:51
    1.Python数据类型Python数据类型计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的...
  • 学习目标:将python所涉及的数据类型、数据结构弄清楚 python作为面向对象编程语言。那么代表数据的对象都有哪些呢? 在这里我把他们分为内置数据类型,文件数据类型,第三方常用数据结构和自定义的数据结构四个方向...
  • 文章目录**6-1 jmu-python-组合数据类型-1.计算坐标点欧氏距离 (10 分)****6-2 jmu-python-函数-找钱 (10 分)****6-3 jmu-java&python-统计字符个数 (10 分)****6-4 缩写词 (10 分)** 6-1 jmu-python-组合数据...
  • 前言:嵩天老师的《Python语言程序设计课程》被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助。因此,我想把自己学习这门课程作业分享出来,和大家一起学习...
  • 安徽工程大学Python程序设计实验报告班级物流192班 姓名吕晨学号3190505209成绩日期 2020.5.27 指导老师修宇【实验名称】实验七 组合数据类型【实验目的】熟悉通过序列索引迭代执行循环;掌握元组、列表与字典的系列...
  • 嵩天老师Python123 测验6: 组合数据类型 (第6周)

    千次阅读 多人点赞 2020-04-23 10:50:01
    关于Python组合数据类型,以下描述错误的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫...
  • 2、 熟练使用组合数据类型解决实际问题。 3、 熟练运用选择结构和循环结构解决实际问题。 实验内容 练习一 题目 统计《三国演义》中人物出场次数最多的前 20 人。 代码 import jieba as jie text = (open('三国演义...
  • 表示如下: h_list=[('张三',173),(李四',179),('王五',160),('赵六',167),('李阳',171),('张清',176),('谢军',180),('陈静',177)] 使用python组合数据类型相关方法或函数求解以下问题: (1)计算队列目前的成员...
  • Python3中有六个标准的数据类型:Number(数字)String(字符串)List(列表)Dictionary(字典)Tuple(元组)Set(集合)我理解的可变就是当一个变量创建时,在内存中申请一块空间用于存放对象,这个被申请的内存空间地址中的...
  • 实验03-python组合数据类型

    千次阅读 2020-03-11 17:17:25
    在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,184
精华内容 3,273
热门标签
关键字:

python组合数据类型题目