当前位置: 首页 > 编程笔记 >

Python zip()函数

凤晨朗
2023-03-14
本文向大家介绍Python zip()函数,包括了Python zip()函数的使用技巧和注意事项,需要的朋友参考一下

zip()函数用于对多个迭代器进行分组。使用帮助方法查看zip()函数的文档。运行以下代码以获取有关zip()函数的帮助。

示例

help(zip)

如果运行上面的程序,您将得到以下结果。

输出结果

Help on class zip in module builtins:
class zip(object)
   | zip(iter1 [,iter2 [...]]) --> zip object
   |
   | Return a zip object whose .__next__() method returns a tuple where
   | the i-th element comes from the i-th iterable argument. The .__next__()
   | method continues until the shortest iterable in the argument sequence
   | is exhausted and then it raises StopIteration.
   |
   | Methods defined here:
   |
   | __getattribute__(self, name, /)
   | Return getattr(self, name).
   |
   | __iter__(self, /)
   | Implement iter(self).
   |
   | __new__(*args, **kwargs) from builtins.type
   | Create and return a new object. See help(type) for accurate signature.
   |
   | __next__(self, /)
   | Implement next(self).
   |
   | __reduce__(...)
   | Return state information for pickling.

让我们看一个简单的例子。

示例

## initializing two lists
names = ['Harry', 'Emma', 'John']
ages = [19, 20, 18]
## zipping both
## zip() will return pairs of tuples with corresponding elements from both lists
print(list(zip(names, ages)))

如果运行上面的程序,您将得到以下结果

输出结果

[('Harry', 19), ('Emma', 20), ('John', 18)]

我们还可以从压缩对象中解压缩元素。我们必须将带有*的对象传递给zip()函数。让我们来看看。

示例

## initializing two lists
names = ['Harry', 'Emma', 'John']
ages = [19, 20, 18]
## zipping both
## zip() will return pairs of tuples with corresponding elements from both lists
zipped = list(zip(names, ages))
## unzipping
new_names, new_ages = zip(*zipped)
## checking new names and ages
print(new_names)
print(new_ages)

如果运行上面的程序,您将得到以下结果。

('Harry', 'Emma', 'John')
(19, 20, 18)

一般用法 zip()

我们可以使用它一次打印来自不同迭代器的多个相应元素。让我们看下面的例子。

示例

## initializing two lists
names = ['Harry', 'Emma', 'John']
ages = [19, 20, 18]
## printing names and ages correspondingly using zip()for name, age in zip(names, ages):
print(f"{name}'s age is {age}")

如果运行上面的程序,您将得到以下结果。

输出结果

Harry's age is 19
Emma's age is 20
John's age is 18
 类似资料:
  • 一种以标量变量的非线性函数为变量的函数称为“函数的函数”,即以函数名为自变量的函数。这类函数包括: 求零点 最优化 求积分 常微分方程 MATLAB通过M文件的函数表示该非线性函数。例如,下面是一个简化的humps函数,来源于matlab/demos路径。 function y = humps(x) y = 1./((x-.3).^2 + .01) + 1./((x-.9).^2 + .04) -

  • 仿函数、仿函数类、函数等 无论喜欢或不喜欢,函数和类似函数的对象——仿函数——遍布STL。关联容器使用它们来使元素保持有序;find_if这样的算法使用它们来控制它们的行为;如果缺少它们,那么比如for_each和transform这样的组件就没有意义了;比如not1和bind2nd这样的适配器会积极地产生它们。 是的,在你看到的STL中的每个地方,你都可以看见仿函数和仿函数类。包括你的源代码中。

  • Rust 提供了高阶函数(Higher Order Function, HOF)。执行一个或多个函数来产生一个用处更大的函数。HOF 和惰性迭代器(lazy iterator)给 Rust 带来了函数式的风格(英文原文:HOFs and lazy iterators give Rust its functional flavor.)。 fn is_odd(n: u32) -> bool {

  • 在 Python 中,定义函数使用 def 语句。一个函数主要由三部分构成: 函数名 函数参数 函数返回值 让我们看一个简单的例子: def hello(name): return name >>> r = hello('ethan') >>> r 'ethan' 在上面,我们定义了一个函数。函数名是 hello;函数有一个参数,参数名是 name;函数有一个返回值,name。 我们也可以

  • 函数(我们Java中的方法)可以使用fun关键字就可以定义: fun onCreate(savedInstanceState: Bundle?) { } 如果你没有指定它的返回值,它就会返回Unit,与Java中的void类似,但是Unit是一个真正的对象。你当然也可以指定任何其它的返回类型: fun add(x: Int, y: Int) : Int { return x + y } 小

  • 函数取得的参数是你提供给函数的值,这样函数就可以利用这些值 做 一些事情。这些参数就像变量一样,只不过它们的值是在我们调用函数的时候定义的,而非在函数本身内赋值。 参数在函数定义的圆括号对内指定,用逗号分割。当我们调用函数的时候,我们以同样的方式提供值。注意我们使用过的术语——函数中的参数名称为 形参 而你提供给函数调用的值称为 实参 。 使用函数形参 例7.2 使用函数形参 #!/usr/bin

  • 高阶函数与普通函数的不同在于,它可以使用一个或多个函数作为参数,可以将函数作为返回值。rust的函数是first class type,所以支持高阶函数。而,由于rust是一个强类型的语言,如果要将函数作为参数或返回值,首先需要搞明白函数的类型。下面先说函数的类型,再说函数作为参数和返回值。 函数类型 前面说过,关键字fn可以用来定义函数。除此以外,它还用来构造函数类型。与函数定义主要的不同是,构

  • 参数声明 rust的函数参数声明和一般的变量声明相仿,也是参数名后加冒号,冒号后跟参数类型,不过不需要let关键字。需要注意的是,普通变量声明(let语句)是可以省略变量类型的,而函数参数的声明则不能省略参数类型。 来看一个简单例子: fn main() { say_hi("ruster"); } fn say_hi(name: &str) { println!("Hi, {}", nam