Python - 压缩时的星号

时间:2016-05-25 23:57:35

标签: python

我是python的新手,我不明白为什么没有以下工作:

DateFormat df1 = new SimpleDateFormat("y-M-d'T'H:m:s.SX");
DateFormat df2 = new SimpleDateFormat("y-M-d'T'H:m:s.SSX");
DateFormat df3 = new SimpleDateFormat("y-M-d'T'H:m:s.SSSX");
try {
    result = df1.parse(inputDate); // first attempt
} catch (ParseException e1) {
    try {
        result = df2.parse(inputDate); // second attempt
    } catch (ParseException e2) {
        result = df3.parse(inputDate); // last attempt, dead if fails
    }
}

因为我正在

ea = zip([[200, 1], [10, 1]])

虽然我应该添加像

这样的星号
[([200, 1],), ([10, 1],)]

获得我想要的结果,即

ea = zip(*[[200, 1], [10, 1]])

我认为*是为了将列表转换为元组,我出错了什么?

2 个答案:

答案 0 :(得分:1)

如果您有时间可以阅读此post,那么了解*如何在Python中运行是一个很好的资源。

Python中的星号解包扩充功能,请参阅here

z = [4, 5, 6]
f(*z)

将与:

相同
f(4,5,6)
字典中的

**与列表中的*类似。

答案 1 :(得分:0)

>>> zip([200, 1], [10, 1]) [(200, 10), (1, 1)] 需要多个参数,如下所示:

*

如果你只想使用一个参数,那么使用>>> zip(*[[200, 1], [10, 1]]) [(200, 10), (1, 1)] >>> ,因为它具有将其分解为多个参数的效果:

*

response = urllib2.urlopen(url)不会将列表转换为元组。它解压缩列表(http://kafka.apache.org/documentation.html#configuration)。