本文将为您提供关于如何在Python中“堆叠”嵌套列表?原始解决方案-更复杂的详细介绍,我们还将为您解释python堆叠加并列柱形图的相关知识,同时,我们还将为您提供关于dplyr::mutate()
本文将为您提供关于如何在 Python 中“堆叠”嵌套列表? 原始解决方案 - 更复杂的详细介绍,我们还将为您解释python堆叠加并列柱形图的相关知识,同时,我们还将为您提供关于dplyr::mutate() -- 在 tibble 嵌套列表中,如何忽略 NULL 嵌套列表? 将值重新编码为小写和下划线 编辑、javascript-如何使用JS / Jquery替换重复的CSS样式-嵌套列表、Markdown 嵌套列表:跳过一个级别、PHP:如果 SHA512 比 SHA256 更复杂,为什么 SHA512 比 SHA256 使用一点时间?的实用信息。
本文目录一览:- 如何在 Python 中“堆叠”嵌套列表? 原始解决方案 - 更复杂(python堆叠加并列柱形图)
- dplyr::mutate() -- 在 tibble 嵌套列表中,如何忽略 NULL 嵌套列表? 将值重新编码为小写和下划线 编辑
- javascript-如何使用JS / Jquery替换重复的CSS样式-嵌套列表
- Markdown 嵌套列表:跳过一个级别
- PHP:如果 SHA512 比 SHA256 更复杂,为什么 SHA512 比 SHA256 使用一点时间?
如何在 Python 中“堆叠”嵌套列表? 原始解决方案 - 更复杂(python堆叠加并列柱形图)
如何解决如何在 Python 中“堆叠”嵌套列表? 原始解决方案 - 更复杂
如何重塑嵌套列表,以便所有嵌套项都嵌套在之前的项中?
例如
ex1 = [1,[2,20],[3,30],[4]]
ex2 = [1,[2]]
ex3 = [1]
预期输出如下:
ex1 = [1,20,30,[4]]]]
ex2 = [1,[2]]
ex3 = [1]
我想我想做与扁平化列表相反的事情。
原始列表结构可以嵌套任意长度的对象,但这些嵌套对象本身永远不会包含嵌套对象。
也可能有零个嵌套对象。
编辑:我已修复的示例中的错误(我认为)
edit2:遗漏了一些重要的说明,现在添加
解决方法
只要列表长于 2,大概它就会包含我们需要堆叠的子列表,所以弹出最后一个并堆叠它。
def stack(L):
"""Note: Mutates L"""
while len(L) > 2:
last = L.pop()
L[-1].append(last)
>>> stack(ex1)
>>> ex1
[1,[2,20,[3,30,[4]]]]
>>> stack(ex2)
>>> ex2
[1,[2]]
>>> stack(ex3)
>>> ex3
[1]
原始解决方案 - 更复杂
沿列表向后迭代,将每个子列表附加到它之前的子列表,然后将其从顶级列表中删除。虽然,如果顶级列表少于 3 个元素,它可能已经是正确的。
def stack(L):
"""Note: Mutates L"""
if len(L) < 3:
return
prev = L[-1] # For use in loop
for sublist in L[-2:0:-1]: # Backwards from second-last to second
sublist.append(prev)
del L[-1]
prev = sublist # For next iteration
dplyr::mutate() -- 在 tibble 嵌套列表中,如何忽略 NULL 嵌套列表? 将值重新编码为小写和下划线 编辑
如何解决dplyr::mutate() -- 在 tibble 嵌套列表中,如何忽略 NULL 嵌套列表? 将值重新编码为小写和下划线 编辑
有时,我的更高级别 tibble
中的嵌套列表是 NULL
。我想在使用 dplyr::mutate()
时忽略这些列表。
示例
将值重新编码为小写和下划线
数据
library(tibble)
df <-
tibble(movies = c("The Shawshank Redemption","The Godfather","The Godfather: Part II","The Dark Knight","12 angry Men"),continents = c("Asia","Australia","America","Africa","Europe"),michaels = c("Michael Jackson","Michael Jordan","Mike Tyson","Michael Phelps","Michael Schumacher"))
df <- add_column(df,ignore_me = list(NULL))
df
## # A tibble: 5 x 4
## movies continents michaels ignore_me
## <chr> <chr> <chr> <list>
## 1 The Shawshank Redemption Asia Michael Jackson <NULL>
## 2 The Godfather Australia Michael Jordan <NULL>
## 3 The Godfather: Part II America Mike Tyson <NULL>
## 4 The Dark Knight Africa Michael Phelps <NULL>
## 5 12 angry Men Europe Michael Schumacher <NULL>
尝试重新编码值
library(dplyr) # version 1.0.2
library(snakecase)
df %>%
mutate(across(everything(),snakecase::to_any_case))
错误:mutate()
输入 ..1
有问题。
x 参数不是字符向量
i 输入 ..1
是 across(everything(),snakecase::to_any_case)
。
显然,以下任一方法都可以:
df %>% mutate(across(c(movies,continents,michaels),snakecase::to_any_case))
# or
df %>% mutate(across(-ignore_me,snakecase::to_any_case))
## movies continents michaels ignore_me
## <chr> <chr> <chr> <list>
## 1 the_shawshank_redemption asia michael_jackson <NULL>
## 2 the_godfather australia michael_jordan <NULL>
## 3 the_godfather_part_ii america mike_tyson <NULL>
## 4 the_dark_knight africa michael_phelps <NULL>
## 5 12_angry_men europe michael_schumacher <NULL>
但实际上我不能期望哪个列/嵌套列表会是 NULL
,因此我需要我的代码简单地忽略这样的 NULL
但仍然适用在非 NULL 列上。
编辑
上面的原始 df
可以通过完全忽略 list
来轻松解决问题。但数据通常也可以是:
df_2 <-
tibble(movies = c("The Shawshank Redemption","Michael Schumacher"))
df_2 <- add_column(df_2,ignore_me = list(NULL))
set.seed(2021) ; df_2 <- mutate(df_2,across(sample(colnames(df_2),1),as.list))
df_2
## movies continents michaels ignore_me
## <chr> <chr> <list> <list>
## 1 The Shawshank Redemption Asia <chr [1]> <NULL>
## 2 The Godfather Australia <chr [1]> <NULL>
## 3 The Godfather: Part II America <chr [1]> <NULL>
## 4 The Dark Knight Africa <chr [1]> <NULL>
## 5 12 angry Men Europe <chr [1]> <NULL>
解决方法
您可以忽略所有列表列:
library(dplyr)
df %>% mutate(across(where(Negate(is.list)),snakecase::to_any_case))
或者如果不是所有的 list
列都将是 NULL
,您可以通过检查它们的长度来专门找到具有 NULL
值的列并忽略长度为 0 的列.
df %>% mutate(across(where(~!all(lengths(.) == 0)),snakecase::to_any_case))
# movies continents michaels ignore_me
# <chr> <chr> <chr> <list>
#1 the_shawshank_redemption asia michael_jackson <NULL>
#2 the_godfather australia michael_jordan <NULL>
#3 the_godfather_part_ii america mike_tyson <NULL>
#4 the_dark_knight africa michael_phelps <NULL>
#5 12_angry_men europe michael_schumacher <NULL>
对于修改后的 df_2
,我们可以使用:
,
df_2$michaels[[3]] <- c(df_2$michaels[[3]],df_2$michaels[[4]])
df_2 %>%
mutate(across(where(~all(lengths(.) > 0)),~relist(to_any_case(unlist(.)),.)))
# movies continents michaels ignore_me
# <chr> <chr> <list> <list>
#1 the_shawshank_redemption asia <chr [1]> <NULL>
#2 the_godfather australia <chr [1]> <NULL>
#3 the_godfather_part_ii america <chr [2]> <NULL>
#4 the_dark_knight africa <chr [1]> <NULL>
#5 12_angry_men europe <chr [1]> <NULL>
添加 purrr
的一个选项可能是:
df %>%
mutate(across(where(~ !all(map_lgl(.,is.null))),to_any_case))
movies continents michaels ignore_me
<chr> <chr> <chr> <list>
1 the_shawshank_redemption asia michael_jackson <NULL>
2 the_godfather australia michael_jordan <NULL>
3 the_godfather_part_ii america mike_tyson <NULL>
4 the_dark_knight africa michael_phelps <NULL>
5 12_angry_men europe michael_schumacher <NULL>
对于第二个数据集:
df_2 %>%
mutate(across(where(~ !all(map_lgl(.,~ to_any_case(unlist(.))))
movies continents michaels ignore_me
<chr> <chr> <chr> <list>
1 the_shawshank_redemption asia michael_jackson <NULL>
2 the_godfather australia michael_jordan <NULL>
3 the_godfather_part_ii america mike_tyson <NULL>
4 the_dark_knight africa michael_phelps <NULL>
5 12_angry_men europe michael_schumacher <NULL>
javascript-如何使用JS / Jquery替换重复的CSS样式-嵌套列表
我正在制作一个嵌套列表,希望悬浮样式能够覆盖其容器的整个宽度.为了做到这一点,我要从ul中删除默认边距,并在li内的div上应用padding-left,但这意味着代码很多.见下文或DEMO
ul { list-style: none; padding: 0; margin:0 }
li { margin:0; padding: 0;}
li > div:hover { background-color: #eee}
li div{padding-left:0px}
li li div{padding-left:20px}
li li li div{padding-left:40px}
li li li li div{padding-left:60px}
在创建文件树时,我无法继续应用这些样式,因此层次结构可能会永远持续下去.有人知道我可以在jQuery中做到这一点的有效方法吗?非常感谢
解决方法:
这里有一些代码可以满足您的需求:
$('div:not(:first)').each(function(){
var numEl = $(this).parentsUntil('div:first', 'ul').length - 1;
$(this).css('padding-left', numEl * 20 +'px')
})
它计算ul的数量,直到您击中根并添加填充.
小提琴:http://jsfiddle.net/MKK8v/26/
编辑:
由于性能问题,这里是10倍faste的优化代码:
$('ul').each(function(){
var $this = $(this);
var index = $this.parents('ul').length == 0 ? 0 : getIndex($this);
$this.data('index', index);
})
function getIndex(el){
return parseInt(el.parents('ul').first().data('index'))+1
}
$('div:not(:first)').each(function(){
var numEl = $(this).closest('ul').data('index');
$(this).css('padding-left', numEl * 20 +'px')
})
而不是遍历所有div的所有父级,而是检查放置在数据中的ul索引.
小提琴:http://jsfiddle.net/MKK8v/33/
Markdown 嵌套列表:跳过一个级别
如何解决Markdown 嵌套列表:跳过一个级别
我在 Markdown 中使用嵌套的项目符号列表。在某些情况下,关卡必须从深度 1 跳到深度 3,如下所示:
这可以在纯 Markdown 中完成吗? (显然它可以在 HTML 中完成,如上所述。)我尝试的东西不起作用:
* Lowest level
- Level 3
(第 3 级项目符号前有 2x4 个空格)变为
- 最低级别 - 3级
将所有内容放在一行中。
* Lowest level
- Level 3
(第一行末尾有两个空格)显示为
- 最低级别
- 3级
其中 Level 3 不是嵌套列表:它实际上是第一个项目符号的一部分,它有一个内部的 <br>
换行符。
* Lowest level
*
* Level 3
再次将所有内容集中到一个项目中:
- 最低级别 * * 3 级
可以吗?
解决方法
您可以使用假的 3 级物品来实现这种外观。您可以使用不间断空格和 ⦁ (Z NOTATION SPOT) 字符来构建它们。
来源:
- Lowest level[space][space]
⦁ Level 3: **this skipped level 2**[space][space]
⦁ 3 again
- Level 2
- Back at level 1
结果:
- 最低级别
⦁ 第 3 级:此跳过了第 2 级
⦁ 3 再次- 2 级
- 回到 1 级
为了进行比较,这是一个包含 3 个级别的真实列表:
- 1 级
- 2 级
- 级别 3
- 2 级
PHP:如果 SHA512 比 SHA256 更复杂,为什么 SHA512 比 SHA256 使用一点时间?
如何解决PHP:如果 SHA512 比 SHA256 更复杂,为什么 SHA512 比 SHA256 使用一点时间?
这段代码对我的测试来说是钝的?
error_reporting(E_ALL);
ini_set(''display_errors'',1);
$p = ''abc'';
$i = microtime(1);
echo hash(''SHA256'',$p);
echo ''<hr />'';
var_dump(number_format(microtime(1) - $i,7));
echo ''<hr />'';
$i = microtime(1);
echo hash(''SHA512'',7));
echo ''<hr />'';
为什么我总是在第二行和第一行得到时间片段?
SHA512 更有效还是我的“基准”很荒谬?
关于如何在 Python 中“堆叠”嵌套列表? 原始解决方案 - 更复杂和python堆叠加并列柱形图的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于dplyr::mutate() -- 在 tibble 嵌套列表中,如何忽略 NULL 嵌套列表? 将值重新编码为小写和下划线 编辑、javascript-如何使用JS / Jquery替换重复的CSS样式-嵌套列表、Markdown 嵌套列表:跳过一个级别、PHP:如果 SHA512 比 SHA256 更复杂,为什么 SHA512 比 SHA256 使用一点时间?的相关知识,请在本站寻找。
本文标签: