python有一种做事的方法吗?
我总是在python文章/书籍中看到python很简单,它只有一种方法。我希望有人向我解释这个概念记住下面的例子,如果我想得到序列的最小值和最大值,我将执行以下操作python有一种做事的方法吗?,python,Python,我总是在python文章/书籍中看到python很简单,它只有一种方法。我希望有人向我解释这个概念记住下面的例子,如果我想得到序列的最小值和最大值,我将执行以下操作 seq=[1,2,3,4,5,6] min(seq) #1 max(seq) #6 但我也能做到这一点 seq[:1] #1 seq[-1] #6 当然,这是做一件简单事情的两种方法。这让我有点困惑。这是两件不同的事情max()为您提供列表中最大的元素(默认情况下使用常规数字比较),而[-1]为您提供最后一个元素–在您
seq=[1,2,3,4,5,6]
min(seq) #1
max(seq) #6
但我也能做到这一点
seq[:1] #1
seq[-1] #6
当然,这是做一件简单事情的两种方法。这让我有点困惑。这是两件不同的事情
max()
为您提供列表中最大的元素(默认情况下使用常规数字比较),而[-1]
为您提供最后一个元素–在您的示例中,这恰好是相同的事情。但是考虑一下:
>>> seq = [2, 7, 5, 4]
>>> max(seq)
7
>>> seq[-1]
4
顺便说一句,
seq[:1]
再次为您提供了一些不同的内容–即[1]
(在我的示例中是[2]
),一个元素列表。你的意思可能是seq[0]
,它是列表的第一个元素,而min(seq)
是最小的元素。这是两个不同的东西max()
为您提供列表中最大的元素(默认情况下使用常规数字比较),而[-1]
为您提供最后一个元素–在您的示例中,这恰好是相同的事情。但是考虑一下:
>>> seq = [2, 7, 5, 4]
>>> max(seq)
7
>>> seq[-1]
4
顺便说一句,
seq[:1]
再次为您提供了一些不同的内容–即[1]
(在我的示例中是[2]
),一个元素列表。您可能的意思是seq[0]
,它是列表的第一个元素,而min(seq)
,它是最小的元素。在您的示例中,您实际上做了两件不同的事情——它们恰好给出了相同的结果,因为您的输入列表已排序。然而,做事总是有多种方式的。Python的方法并不是真正避免或禁止多种方法来做同一件事,而是有一种——最好只有一种——明显的方法来做事情。在您的示例中,您实际上做了两件不同的事情——它们恰好给出相同的结果,因为您的输入列表是排序的。然而,做事总是有多种方式的。Python的方法并不是真正避免或禁止做同一件事的多种方法,而是有一种——最好只有一种——明显的方法
>>> import this
一种明显的方式
>>> import this
并不是说它“有一种做事的方式”,而是更多的“应该有一种——最好只有一种——显而易见的做事方式。”
这并不排除有不止一种做事方式的可能性。我们谈论的是编程,其中创造力是最重要的技能之一,找到解决问题的新方法是必须的
在您的示例中,您正在做两件不同的事情:
在这种情况下,结果恰好是完全相同的。max()、min()和索引切片它们都做不同的事情。在您的列表中,顺序可能不像您的示例那样进行排序,因此在这些情况下,使用切片将无法获得最大/最小值。如果您想获得最大/最小值,只需使用
max()/min()
函数max()、min()和索引切片,它们都做不同的事情。在您的列表中,顺序可能不像您的示例那样进行排序,因此在这些情况下,使用切片将无法获得最大/最小值。如果您想获得最大/最小值,只需使用max()/min()
functions解决问题的方法总是不止一种,但是python开发人员尝试不添加提供冗余功能的语言特性,这与perl非常不同。解决问题的方法总是不止一种,但是python开发人员尽量不添加提供冗余功能的语言特性,这与perl非常不同。bah。我真的很想给你这个职位+10分。唉,我只能做+1。。。。太糟糕了……:)我认为您的示例非常简单。同样,seq[:1]返回一个列表,您可能正在查找seq[0]bah。我真的很想给你这个职位+10分。唉,我只能做+1。。。。太糟糕了……:)我认为您的示例非常简单。同样,seq[:1]返回一个列表,您可能正在查找seq[0]