python语言篇(6练习2)

# 练习:
#   1. 有字符串列表如下:
#       L = ["tarena", 'xiaozhang', 'hello']
#     用推导式生成如下字典:
#       d = {"tarena":6, 'xiaozhang':9, 'hello':5}
#     注: 字典的值为键的长度

L = ["tarena", 'xiaozhang', 'hello']
d = {x: len(x) for x in L}
print(d)
 

# 2. 输入一段字符串,打印出这个字符串中出现过的字符及出现过的次数:
#   如:
#     输入:abcdabcaba
#   打印如下:
#     a: 4次
#     b: 3次
#     d: 1次
#     c: 2次
#     注: 不要求打印顺序    

s = input("请输入: ")
# 方法1
# char_set = set(s)
# for c in char_set:
#     print(c, ":", s.count(c), "次")

# 方法2
# 先创建一个空字典,字典的键为字符,字典的值为: 重复次数
# 'abcdabcaba'
d = {}
for c in s:
    # 先判断字典d里有没有 c对应的字符。
    if c in d:
        # 如果已经存在于字典中,将次数做加1操作
        d[c] += 1
    else:
        # 否则 把c绑定的字符作为键加到字典中,此键对应的值为1
        d[c] = 1

print(d)
for k in d:  # 打印结果
    print(k, ":", d[k], "次")

 

# 集合练习:
#   经理有: 曹操,刘备,周瑜
#   技术员有: 曹操,周瑜,张飞,赵云
#   用集合求:
#     1. 即是经理也是技术员的有谁?
#     2. 是经理,但不是技术员的有谁?
#     3. 是技术人员,但不是经理的都有谁?
#     4. 张飞是经理吗?
#     5. 身兼一职的人都有谁?
#     6. 经理和技术员共有几个人?
#     


manager = {'曹操', '刘备', '周瑜'}
tech = {'曹操', '周瑜', '张飞', '赵云'}
print("即是经理也是技术员的有:", manager & tech)

print("是经理,但不是技术员的有:", manager - tech)
print("是技术人员,但不是经理的都有:", tech - manager)
print("张飞", "是" if "张飞" in manager else "不是", "经理")
print("身兼一职的人都有谁", manager ^ tech)
print("经理和技术员共有%d个人" % len(manager | tech))

你可能感兴趣的:(python语言篇)