python学习之四(集合的相关操作)

集合:

集合是由不同元素组成的,集合里的元素是无序的,集合中的元素必须是不可变的。

集合的简单定义:

s = {1,2,3,4,5,6,6}
print(type(s))
print(s)

输出结果:

type表明了这是一个集合类型,输出元素集合把重复的元素自动去除。另外利用这种方法也能创建一个集合:

# s=set('hello')
# print(s)

或者:

# s=set(['alex','alex','sb'])
# print(s)
#集合的内置方法
# s={1,2,3,4,5,6}
# s.add(7)
# s.remove(1)  #删除元素不存在会报错
# s.discard(7) #删除元组不存在不会报错
# s.pop()
# s1=s.copy()
# print(s1,s)

集合的关系运算:

按照平时的循环来做第一列表与第二列表的关系运算也可以,但是特别麻烦,代码:

python_1=['张三','李四','王五']
linux_1=['刘六','李四','钱七']
python_and_linux_1=[]
for p_name in python_1:
    if p_name in linux_1:
        python_and_linux_1.append(p_name)
print(python_and_linux_1)

输出结果:

如果用集合里自带的基本运算就会特别简单,这里要注意用的时候注意类型的转换:

# #求交集
# print(p_s.intersection(l_s))
# print(p_s&l_s)
# #求并集
# print(p_s.union(l_s))
# print(p_s|l_s)
# #求差集
# print(p_s.difference(l_s))
# print(p_s-l_s)
# #交叉补集(合在一块去掉共有的部分)
# print(p_s.symmetric_difference(l_s))
# print(p_s^l_s)
# #判断子集
# s1={1,2}
# s2={1,2,3}
# print(s1.issubset(s2))
# #判断父集
# print(s2.issuperset(s1))
# #更新多个值
# s1.update(s2)
# print(s1)

字符串拼接格式化:

百分号用法  %s表示传递一个字符串类型的数据,后面的%表示要传递的内容
print('i am %s my hobby is %s' %('lucky','swimming'))

输出:

还可以使用传递变量的形式:

扫描二维码关注公众号,回复: 3640417 查看本文章
name='lucky'
age=18
print('i am %s my age is %d' %(name,age))
print('i am %(name1)s my age id %(age1)d' %{"name1":"lucky","age1":18})

输出结果:

字符串格式化,去掉{}里的数字也可以使用,按照顺序传值

# s='i am {0},age{1},{2}'.format("lucky",18,"love")
# s1='i am {name},age{age},{other}'.format(name='lucky',age=18,other='lover')

进制转化:

s2='numbers:{:b},{:o},{:d},{:x},{:X},{:%}'.format(15,15,15,15,15,15.567345,4)
print(s2)

输出结果:

下面加上一段python递归的问路程序:

person_list = ['dog','cat','fish','cow']
def ask_way(person_list):
    if len(person_list)==0:
        return '没人知道怎么走'
    person= person_list.pop(0)
    if person=='fish':
        return '%s说:我知道怎么走' %person
    print('问:hi %s,你知道怎么走吗?' %person)
    print('%s回答:我不知道,我帮你问问%s' %(person,person_list))
    res = ask_way(person_list)
    print('%s问的结果是:%res' %(person,res))
    return res
res=ask_way(person_list)
print(res)

输出结果:

通过这段程序能更好体会递归的调用过程以及执行结束条件。

猜你喜欢

转载自blog.csdn.net/LOLUN9/article/details/83140644