标签: tuple-packing

元组解包顺序更改分配的值

我认为两者是相同的.

nums = [1, 2, 0]    
nums[nums[0]], nums[0] = nums[0], nums[nums[0]]    
print nums  # [2, 1, 0]

nums = [1, 2, 0]    
nums[0], nums[nums[0]] = nums[nums[0]], nums[0]    
print nums  # [2, 2, 1] 
Run Code Online (Sandbox Code Playgroud)

但结果却不同.
为什么结果不同?(为什么会产生第二个?)

python indexing list tuple-packing

48
推荐指数
3
解决办法
1855
查看次数

将scala元组包装到自定义类对象

我有一个元组

val tuple = ("Mike", 40)
Run Code Online (Sandbox Code Playgroud)

和一个案例类

case class Person(name: String, age: Int)
Run Code Online (Sandbox Code Playgroud)

如何将我的元组打包到Person类的对象?除此之外有什么方法:

new Person(tuple._1, tuple._2)
Run Code Online (Sandbox Code Playgroud)

也许有人喜欢

tuple.asInstanceOf[Person]
Run Code Online (Sandbox Code Playgroud)

谢谢.

scala tuple-packing

16
推荐指数
1
解决办法
4144
查看次数

scala将多个函数调用参数合并到一个元组中 - 这可以被禁用吗?

这是我项目中类型安全的麻烦违规,所以我正在寻找一种方法来禁用它.似乎如果函数采用AnyRef(或java.lang.Object),您可以使用任何参数组合调用该函数,Scala会将参数合并到Tuple对象中并调用该函数.

在我的情况下,该函数不期望一个元组,并在运行时失败.我希望在编译时捕获这种情况.

object WhyTuple {
 def main(args: Array[String]): Unit = {
  fooIt("foo", "bar")
 }
 def fooIt(o: AnyRef) {
  println(o.toString)
 }
}
Run Code Online (Sandbox Code Playgroud)

输出:

(foo,bar)
Run Code Online (Sandbox Code Playgroud)

syntax scala tuples tuple-packing

7
推荐指数
2
解决办法
1280
查看次数

在Python中将列表列表转换为元组

我有一个列表列表(使用简单的列表推导生成):

>>> base_lists = [[a, b] for a in range(1, 3) for b in range(1, 6)]
>>> base_lists

[[1,1],[1,2],[1,3],[1,4],[1,5],[2,1],[2,2],[2,3],[2,4],[2,5]]
Run Code Online (Sandbox Code Playgroud)

我想将整个列表转换为包含列表中所有值的元组,即:

resulting_tuple = (1,1,1,2,1,3,1,4,1,5,2,1,2,2,2,3,2,4,2,5)
Run Code Online (Sandbox Code Playgroud)

最有效的方法是什么?(使用列表理解生成这个相同元组的方法也是可以接受的答案.)我在这里和Python文档中查看了答案,但是我找不到合适的答案.

编辑:

非常感谢所有回答的人!

python list-comprehension python-itertools tuple-packing

5
推荐指数
2
解决办法
1899
查看次数