【Python练习】task-05 字符串、列表、元组、字典、集合练习和实验

目录

1.列表练习

1.1假定有下面的列表: names = ['fentiao','fendai','fensi','apple'] 输出结果为:'I have fentiao, fendai, fensi and apple.'

1.2 list1 = ['life','is','short'] list2 = ['you','need','python']将两个列表合并为一个列表并排序输出

1.3.系统里面有多个用户,用户的信息目前保存在列表里面(一一对应的关系)

1.4.列表的函数操作练习

1.5.有1,2,3,4,5,6,7,8 八个数字,能组成多少个互不相同且无重复数字的两位数?

2.元组练习

2.1.创建一个只有一个元素的元组

2.2. 写出下面程序的运行结果。

3.字典练习

4.集合练习

5.综合练习


1.列表练习

1.1假定有下面的列表: names = ['fentiao','fendai','fensi','apple'] 输出结果为:'I have fentiao, fendai, fensi and apple.'

names = ['fentiao','fendai','fensi','apple']
print('‘I have ' + ','.join(names[: -1] ) + ' and ' + names[-1] +'.‘')

1.2 list1 = ['life','is','short'] list2 = ['you','need','python']
将两个列表合并为一个列表并排序输出

list1=['life','is','short']
list2=['you','need','python']
print(list1 + list2)

1.3.系统里面有多个用户,用户的信息目前保存在列表里面(一一对应的关系)

    users = ['root','westos']
    passwd = ['123','456']

要求:用户输入用户名和密码
    1).判断用户是否存在。如果用户不存在,提示用户不存在,结束
    2).如果存在
        1) 判断用户密码是否正确,如果正确,登陆成功,退出循环
        2)如果密码不正确,提示密码不正确,结束

users=['root','westos']
passwd=['123','456']
a=input("请输入用户名: ")
b=input("请输入密码: ")
if str(a) not in users:
    print("用户不存在!")
elif a == 'root':
    if b=='123':
        print("登陆成功!")
    else :
        print("密码错误!")
elif a=='westos':
    if b=='456':
        print("登陆成功!")
    else :
        print("密码错误!")

1.4.列表的函数操作练习

list1 = ['life','is','short'] , list2 = ['you','need','python']

# (1)   
# 将两个列表合并为一个列表并排序输出   
# 将list2作为list1的一个元素加入到list1
# 将list2作为一个元素插入到“life”之后

list1=['life','is','short']
list2=['you','need','python']
print(list1+list2)
list1.extend(list2)
print(list1)
list1.insert(1,list2)
print(list1)

# (2)   
#  将list2的“need”删除
#  将第一步操作后的list1的最后一个元素输出,并从list1中移除

list1=['life','is','short']
list2=['you','need','python']
list1.extend(list2)
list1.insert(1,list2)
x=list2.pop(1)
print(list2)
print(list1[-1])
list1.pop()
print(list1)

# (3) 
# 统计list1中“is”出现的次数   
# 输出list1中“short”的位置

list1=['life','is','short']
list2=['you','need','python']
list1.extend(list2)
list1.insert(1,list2)
print(list1.count('is'))
print(list1.index('short'))

# (4)    
# 将list2逆序输出(使用切片和函数两种方式)
# 将list2排序并输出

list2=['you','need','python']
print(list2[::-1])
list2.reverse()
print(list2)
list2.sort()
print(list2)

1.5.有1,2,3,4,5,6,7,8 八个数字,能组成多少个互不相同且无重复数字的两位数?

count=0
sum=[]
for i in range (1,9):
    for j in range (i,9):
        if i!=j :
            num = i*10+j
            count +=1
            if num not in sum :
                sum.append(num)
                print(int(num),end=' ')
print()
print('共有'+str(count)+ '个')

2.元组练习

2.1.创建一个只有一个元素的元组

tup1=(5,)

2.2. 写出下面程序的运行结果。


temp=("Li","Yu","Song","Gao")    
temp=temp[:2]+("Tang",)+temp[2:]  
print(temp)
回答问题:
("Tang",)的括号可以不要吗?试一下。

temp=("Li","Yu","Song","Gao")    
temp=temp[:2]+("Tang",)+temp[2:]  
print(temp)
temp=("Li","Yu","Song","Gao")    
temp=temp[:2]+"Tang",+temp[2:] 


("Tang",)的逗号可以不要吗?试一下。

temp=("Li","Yu","Song","Gao")    
temp=temp[:2]+("Tang")+temp[2:]


元组是不可变对象,上面的语句为什么可以得到一个‘变化了的’元组?

元组的元素是列表,因为列表是可变对象,因此可以对列表的元素进行修改。

3.字典练习

dict = {"k1":"v1","k2":"v2","k3":v3"}
1、请循环遍历出所有的key
2、请循环遍历出所有的value
3、请循环遍历出所有的key和value
4、请在字典中增加一个键值对,"k4":"v4",输出添加后的字典
5、请删除字典中键值对"k1":"v1",并输出删除后的结果 6、现有dict2 = {"k1":"v11","a":"b"},通过一行操作使dict2 = {"k1":"v1","k2":"v2","k3":"v3","a":"b"}

dict={"k1":"v1","k2":"v2","k3":"v3"}
for key in dict:
    print(key,end=' ')
print()
for value in dict:
    print(dict[value],end=' ')
print()
for key, value in dict.items():
    print(key,end=' ')
    print(value,end=' ')
dict["k4"]="v4"
print()
print(dict)
del dict['k1']
print(dict)
dict2={"k1":"v1","a":"b"}
dict2.popitem()
dict3={"k2":"v2","k3":"v3"}
dict2.update(dict3)
dict2["a"]="b"
print(dict2)

4.集合练习

定义列表:
```
     list1 = ['life','is','short'],
     list2 = ['you','need','python']
     list3 = [1,2,3,4,5,3,4,2,1,5,7,9]
完成以下操作:
(1)把上述三个列表构造为一个集合 list_set1
(2)输出集合的长度
(3)把python从集合中移除
(4)判断集合中是否存在元素‘you’

list1 = ['life','is','short']
list2 = ['you','need','python']
list3 = [1,2,3,4,5,3,4,2,1,5,7,9]
a=list1+list2+list3
list_set1=set(a)
print('list_set1为:'+str(list_set1))
print('集合的长度为'+str(len(list_set1)))
list_set1.remove('python')
print(list_set1)
print('you'in list_set1)

5.综合练习

name = ["张三", "李四", "王五"]  
sign = [85, 95, 80]  

使用推导式输出字典形式{'张三': 85, '李四': 95, '王五': 80}

name = ["张三", "李四", "王五"]
sign = [85, 95, 80]
dict1={i:j for i,j in zip(name,sign)}
print(dict1)
print(zip(name,sign))
print(*zip(name,sign))
print(list(zip(name,sign)))

cookies = "id=11923020101; name=tom; score=90"
#使用推导式输出如下形式:{'id': '11923020101', 'name': 'tom', 'score': '90'}

cookies = "id=11923020101; name=tom; score=90"
cookies={cookies.split("=")[0]:cookies.split("=")[1] for cookies in cookies.split(";")}
print(cookies)

使用字典的函数,统计字符串不同字母的个数

a=input('请输入字符串:')
dict1={}
for b in a:
    dict1.setdefault(b,0)
    dict1[b]+=1
print(dict1)

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python编程语言中,有四种常用的集合数据类型,它们分别是列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。列表是一种有序和可更改的集合,允许重复的成员。元组是一种有序且不可更改的集合,也允许重复的成员。字典是一个无序、可变且有索引的集合,其中没有重复的成员。而集合是一种无序和无索引的集合,没有重复的成员。这四种集合数据类型在Python中都有着不同的特点和用途。 在Python中,列表元组字符串都属于序列,它们的元素都可以通过编号进行访问。而字典则属于映射,其中的元素是以键值对的形式存在的。集合则不属于序列或映射中的任何一种,它是一种独立的数据类型,用于存储一组不重复的元素。 总结起来,Python中的列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)都是常用的集合数据类型,它们各自有着不同的特点和用途。列表是有序和可更改的集合元组是有序且不可更改的集合字典是无序、可变且有索引的集合集合是无序和无索引的集合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [浅谈python四种集合数据类型—【列表元组集合字典】](https://blog.csdn.net/QWERTYzxw/article/details/121479048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python 元组集合字典](https://download.csdn.net/download/weixin_38603219/13752298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天的命名词

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值