在制作一个将字符串变量转换为列表的简单函数时,我需要一些帮助。
def make_list(s):
s = list(s)
return;
string = 'Hello World!'
make_list(string)
print(type(string))
我希望输出是列表,但实际输出是字符串。
答案 0 :(得分:1)
由于您的函数除了调用library(tidyverse)
DATA %>%
mutate(POPN = case_when(
AREA == "A" ~ 2.5,
AREA == "B" ~ 3,
AREA == "C" ~ 7,
TRUE ~ 0)) %>%
group_by(DISEASE,AREA,POPN) %>%
count(AREA) %>%
mutate(res = list(pois.byar(n, POPN))) %>%
unnest()
## A tibble: 9 x 10
## Groups: DISEASE, AREA, POPN [9]
# DISEASE AREA POPN n x pt rate lower upper conf.level
# <fct> <fct> <dbl> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 Chicky Pox A 2.5 1 1 2.5 0.4 0.0363 1.86 0.95
#2 Chicky Pox B 3 2 2 3 0.667 0.133 2.14 0.95
#3 Chicky Pox C 7 2 2 7 0.286 0.0570 0.916 0.95
#4 Marco Polio A 2.5 2 2 2.5 0.8 0.160 2.56 0.95
#5 Marco Polio B 3 2 2 3 0.667 0.133 2.14 0.95
#6 Marco Polio C 7 1 1 7 0.143 0.0130 0.666 0.95
#7 Mumps A 2.5 2 2 2.5 0.8 0.160 2.56 0.95
#8 Mumps B 3 1 1 3 0.333 0.0302 1.55 0.95
#9 Mumps C 7 2 2 7 0.286 0.0570 0.916 0.95
外什么也不做,因此您可以使用此函数,并且所有知道Python的人都可以理解,而无需进一步处理。
list
答案 1 :(得分:0)
这里:
string = 'Hello World!'
def make_list(s):
s = list(s)
return s;
my_list = make_list(string)
print(type(my_list))
答案 2 :(得分:0)
您正在尝试覆盖全局变量string
,但是s
中的make_list
对于该函数而言是本地的。
s
最初确实指向与string
相同的值,但是它们没有以任何方式相互连接。
函数“ scope”与全局“作用域”不同。尽管您可以使用global
关键字从名称上grab a global variable来命名,但这并不是真正的标准做法。
通常,我们编写一个函数,该函数接受输入,对其进行处理,然后提供输出。此外,不要重写值以提高可读性和可维护性,这很有用(也许我们稍后会决定要使用该值)。
这就是我要怎么做(尽管编写一个功能与其调用的功能相同的函数没有意义,但这就是您要的):
def make_list(s):
return list(s)
string = 'Hello World!'
listString = make_list(string)
print(listString)