Python练习 02

# coding:utf-8
"""
将字符串python转化为列表(记为lst),然后完成如下操作:
1、将字符串rust中每个字母作为独立元素追加到lst中
2、对lst排序
3、删除lst中的重复值
知识点:
1、用list方法可以将其他类型的数据转换为列表;
2、列表元素追加,使用append方法,extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
3、对列表进行排序sort方法,sort(*, key=None, reverse=False)
三个参数
*代表可选参数, 如果指定了该参数会使用该参数的方法进行排序
key:主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse:排序规则,reverse = True 降序, reverse = False 升序(默认)。
4、删除列表的重复值
"""

lst1 = list("python")
lst2 = list("rust")
for i in lst2:
    lst1.append(i)
print(lst1)

lst = list("python")
lst2 ="rust"
lst.extend(lst2)
print(lst)

#对列表进行排序
lst.sort()
# print(lst)
"""
删除重复值的方法:
1、用set方法转换成集合,集合中的元素是没有重复的
2、用for循环
3、用列表解析的方法
"""
lst3 = list(set(lst))
print(lst3)
print(lst)

lst4 = []
for i in lst:
    if i not in lst4:
        lst4.append(i)
print(lst4)


lst5 = []
[lst5.append(i) for i in lst if i not in lst5]
print(lst5)
# coding: UTF-8
"""
编写程序,实现如下功能:
1、用户输入国家名称
2、打印出所输入国家名称及其首都
知识点:
1、获取字典某个key的value,
1)可以通过dir[key]方法,但是如果key没在字典中,则会报错
2)也可以通过dir.get(key)方法获取,这种方法如果key没在字典中,也不会报错
2、用户输入操作
3、如果用户输入一个异常,如何处理(这个问题后面练习再体现)
"""

dir_country = {"China": "Beijing", "Mongolia": "Ulaanbaatar", "Korea": "Pyongyang", "Japan": "Tokyo"}
user_input = input("please input a country's name:")
# print("The country is {0}. \nThe capital is {1}".format(user_input, dir_country[user_input]))
print("The country is {0}. \nThe capital is {1}".format(user_input, dir_country.get(user_input)))
# coding:UTF-8
"""
有如下技术栈名称集合:skills = {"Python", "R", "SQL", "Git", "Tableau", "SAS"}
假设自己的技术是:mySkills = {"Python", "R"}
判断自己所掌握的技术是否在上述技术栈范围之内
知识点,集合的关系和操作:
1、集合的关系:
a 包含 b :a.issuperset(b) b.issubset(a)
a 和 b 的交集:a.intersection(b)  a&b
a 并 b :a.union(b) a|b
a 和 b的差集(有方向) a.difference(b) b.difference(a)
2、对集合的操作
增加元素:add(参数为元素)、update(参数为集合)
删除元素:pop、remove、discard(和remove类似,但是如果元素不在集合,不会报错,remove会报错)、clear
"""
skills = {"Python", "R", "SQL", "Git", "Tableau", "SAS"}
mySkills = {"Python", "Java"}
r = mySkills.issubset(skills)
print(r)

r = mySkills.intersection(skills)
print(r)
# coding:UTF-8
"""
找出以下两个字典共有的键:
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
{'b': 22, 'd': 44,'e': 55,'f': 77}
知识点:
1、获取字典的键keys
2、结合集合的方法求交集
"""
d1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
d2 = {'b': 22, 'd': 44, 'e': 55, 'f': 77}
# <class 'dict_keys'>视图类型可以直接用&求交集
print(d1.keys() & d2.keys())

# 通过集合求交集的方式实现
key1 = set(d1.keys())
key2 = set(d2.keys())
print(key1.intersection(key2))


# coding:utf-8
"""
songs ="You raise me up so i can stand on mountains You raise me up to walk on stormy seas i am strong when i am on
your shoulders You raise me up to more than i can be"
制作上述字符串的单词表
统计每个单词出现的频次
知识点:
1、去重
2、统计词频
"""
songs ="You raise me up so i can stand on mountains You raise me up to walk on stormy seas" \
       " am strong when i am on your shoulders You raise me up to more than i can be"
songs_set = set(songs.split(" "))
lst = songs.split(" ")
dir0 = {}
for key in songs_set:
    value = lst.count(key)
    # dir0.update({key: value})
    dir0[key] = value
print(songs_set)
print(dir0)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值