Python_面向对象_tuple

--元祖相关操作和函数

"""
  元祖除了不能修改和删除,其他的和列表相关操作一模一样,
  元祖函数可以使用index和count,只能是元祖相关的获取操作,
  比如更改,删除,排序,翻转,清空都不可以
"""

--元祖推导式是生成器(generator)
  <generator object <genexpr> at 0x7f00c26c55c8> 生成器
  定义:这种一边循环一边计算的机制,称为生成器:generator
  格式:里面推导式写法与列表推导式相同,但是写法上,外面是(),里面是推导式
  特点:生成器是特殊的迭代器,意味着可使用next,一个一个取出下一个值




# 元组推导式
# 案例1
tuplevar = (1,2,3,4,5,6)


# 元组推导式里面只能是循环和判断 除此之外的任何语法都不行
res = (i ** 2 for i in tuplevar)
print(res) #[1,4,9,16]
# 方式一 取数据
# print(list(res))

# 方式二 取数据
"""
for i in res:
  print(i)
"""
# 方式三 取数据
print(next(res))
print(next(res))
print(next(res))

# 带有判断条件的元组推到式
tuplevar = (1,2,3,4,5,6)
res = (i for i in tuplevar if i % 2 == 0)
print(res)

# 多循环元组推到式
tuple1= ("火龙果","菠萝蜜","要钱树")
tuple2= ("栗子","鸡子","苹果")
tuple3 = tuple()
"""
#原型:
for i in tuple1:
  for j in tuple2:
    # if tuple1.index(i) == tuple2.index(j)
    tuple3.append(i+"---"+j)
print(tuple3)
"""
res = ( i+"---"+j for i in tuple1 for j in tuple2 )
print(res)

#('火龙果---栗子', '火龙果---鸡子', '火龙果---苹果', '菠萝蜜---栗子', '菠萝蜜---鸡子', '菠萝蜜---苹果', '要钱树---栗子', '要钱树---鸡子', '要钱树---苹果')
# 火龙果---栗子 菠萝蜜---鸡子 要钱树---苹果

#带有判断条件的多循环推到式
res = ( i+"---"+j for i in tuple1 for j in tuple2 if tuple1.index(i) == tuple2.index(j))
print(res)

 

猜你喜欢

转载自www.cnblogs.com/bling-bling-star/p/9382899.html