关于使用列表的最小和最大功能

问题描述

我正在尝试从list()生成的列表中打印min()和max()值

x = [list(range(1,11))]
print(min(x))
print(max(x))

这将两次返回原始列表:[1、2、3、4、5、6、7、8、9、10]和[1、2、3、4、5、6、7、8、9 ,10]
但是当我写

x = [1,2,3,4,5,6,7,8,9,10]
print(min(x))
print(max(x))

它返回实际的最小值和最大值:1和10

我想念什么?

解决方法

x = [list(range(1,11))]

正在listlist中创建一个; list构造函数将range转换为list,然后方括号声明包含该list的另一个list。就像这样做:

x = [[1,2,3,4,5,6,7,8,9,10]]  # Note two brackets on each side

很明显,只有一个元素(内部列表)的max的{​​{1}}和min就是那个元素。这是list中所有元素中最全部的。如果您希望它等同于:

list

只需:

x = [1,10]

或者,如果您真的喜欢方括号语法,则可以像这样使用广义解包:

x = list(range(1,11))  # No brackets needed; the list constructor makes a single unnested list
,

像这样更改x;

import React from 'react'
// import {strings as frstrings} from '../res/lang/fr/strings'
// import {strings as engstrings} from '../res/lang/eng/strings'

const lang = {
  // in this way,you could dynamically add lang
  // later on which worrying about if-elses in your component
  en: {
    hello: 'hello'
  },fr: {
    hello: 'bonjour',},}

const langDict = (key) => lang[key]

const LanguageContext = React.createContext(null);

function LanguageProvider({ initialState = 'en',children }) {
  const [lang,setLang] = React.useState(initialState);

  return (
    <LanguageContext.Provider value={[langDict(lang),setLang]}>
      {children}
    </LanguageContext.Provider>
  )
}

function useLanguage() {
  return React.useContext(LanguageContext);
}

export default function AppWrapper() {
  return (
    <LanguageProvider>
        <App />
    </LanguageProvider>
  )
}

function App() {
  const [lang,setLang] = useLanguage();

  return (
    <div>
      <h1>{lang.hello}</h1>
      <button onClick={() => setLang('fr')}>French</button>
      <button onClick={() => setLang('en')}>English</button>
    </div>
  )
}

,

您的第一种情况是一个仅包含一个元素的列表:一个数字为1-10的子列表

set.seed(123)
#predicted response
y_pred=replicate(50,rbinom(1,1,prob = 0.55))

#actual response
y=sample(rep(0:1,each=25))

table(y,y_pred)
 

  y_pred
y    0  1
  0 13 12
  1 10 15

因此,最小值和最大值只能是一个元素...

,

之所以会这样,是因为在第一个语句中,您正在另一个列表中创建一个列表。通过使用关键字列表将第一条语句修改为x = list(range(1,11)),您已经在告诉代码变量应该是一个列表,因此不需要括号。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...